lee-romantic 's Blog
Everything is OK!
Toggle navigation
lee-romantic 's Blog
主页
About Me
归档
标签
C++中char,string,int等的转换总结
2020-03-12 16:24:02
516
0
0
lee-romantic
---------- ##(一)int与char的转换 实际上char也是采用8位整型存储的,参考: https://wenda.so.com/q/1467568769728405?src=170&q=C%2B%2B+char%E6%9C%AC%E8%B4%A8 ####(1)根据ASCLL码转换: ``` //char转int char a = '3'; int b = a - '0'; //int转char char c = b + '0'; char c = b + 48;//48是0的ascll码值 ```  (2)强制转换 ``` a = char(b); b = int(a); ``` 参考地址: https://blog.csdn.net/qq_30534935/article/details/82683643 ##(二)string、char *、char[]相互转换 ####(1)string转char*: 主要有三种方法可以将string转换为char*类型,分别是:`data()、c_str()、copy()`。 其中,copy()可能会报安全性错误,自行解决即可。 ``` string s = "hello"; char *ch1 = s.data(); const char *ch1 = (char*)s.data(); char *ch2 = s.c_str();//实际上就是转为c风格字符串 char ch3[20]; //str.copy(cstr,n,pos); s.copy(ch3,5,0); *(p+5) = '\0';//'\0'的意思是 ASCII 为 0 的字符。 它所的意义是“字符串结束符”。 ``` ####(2)char*转string 直接赋值即可: ``` string s; char *p = "helloworld"; s = p; ``` ####(3)string转char[] for循环遍历输入: ``` string pp = "helloworld"; char p[20]; int i; for( i=0;i<pp.length();i++) p[i] = pp[i]; p[i] = '\0'; //添加结束符 ``` ####(4)char[]转string和char* 直接赋值: ``` char ch[] = "helloworld"; string s = ch; char *ch2 = ch; ``` ####(5)char*转char[] 主要有两种方法可以将char*转换为char[]类型,分别是:strcpy()、循环遍历。 其中,strcpy()可能会报安全性错误,自行解决即可。 ``` //方法1 char arr[20]; char* tmp = "helloworld"; strcpy(arr, tmp); //方法2 char arr[20]; char* tmp = "helloworld"; int i = 0; while (*tmp != '\0') arr[i++] = *tmp++; arr[i] = '\0'; //添加结束符 ``` 参考地址: https://blog.csdn.net/qq_30534935/article/details/82459448 ##(三)int、string 类型 int转string:`to_string`,to_string为string中的库函数: ``` int a = 10; string s = to_string(a); ``` string转int:`stoi()`函数,同样为string库函数,类似的, stof()转为float类型,stol()转为long等: 另外,还可以使用c语言的方式,标准库中的atoi()函数 ``` string str1 = "100"; string str2 = "abc100"; int a = stoi(str1); int b = atoi(str1.c_str()); //特别注意,string中有非数字的情况时,转换结果为0 int c = stoi(str2);//c = 0; ``` 参考地址: https://blog.csdn.net/qq_30534935/article/details/82086379
上一篇:
红黑树(RBT)详细学习记录
下一篇:
单调栈的理解和学习
0
赞
516 人读过
新浪微博
微信
腾讯微博
QQ空间
人人网
提交评论
立即登录
, 发表评论.
没有帐号?
立即注册
0
条评论
More...
文档导航
没有帐号? 立即注册