1\基本类型转为string
nt a = 100, b = 200;
string A = to_string(a) + to_string(b);//100200
2\string转cstring*
声明如下:
const char * string::data(); //以字符数组的形式返回字符串内容但不主动添加'\0'
const char * string::c_str(); //返回一个以'\0'结尾的字符数组
例子如下:
char* B = (char*)(A.c_str());
cout<<B<<endl;//100200
B[2] = '1';
cout<<B<<endl;//101200
cout<<A<<endl;//101200
需要注意避免出现以下问题:
string str = "hello world!";
const char * cstr = str.data();
printf("%p\r\n",&str[0]); //006ffec0
printf("%p\r\n",cstr); //006ffec0,这里还是对应上的
str.reserve(1000);
printf("%p\r\n",&str[0]); //00cfa580
printf("%p\r\n",cstr); //006ffec0
cstr = str.data();
printf("%p\r\n",cstr); //00cfa580
3\string转cstring
声明如下:[2]
size_t string::copy(char *,size_t len,size_t pos =0)//len可取string::npos
例子如下:
string str = "hello world!";
char buff[50];
size_t length = str.copy(buff,string::npos,0);
buff[length] = '\0';
cout<<buff<<endl;
4\cstring转string
其实就是构造函数:
string s(cstr) //将C字符串作为s的初值
string s(chars,chars_len) //将C字符串前chars_len个字符作为字符串s的初值。
5、string转基本类型
sto? : ?可为 d f l ld ll ul ull
或见sstream的使用[3]
6、参考链接
[1] C++之string类型详解
[2] c++ string转c 字符数组的方法
[3] C++ sstream的使用
222

被折叠的 条评论
为什么被折叠?



