文章目录
各种类型数据的转换(c++)
string转char*
使用string提供的函数c_str() ,或是函数data(),
data除了返回字符串内容外,不附加结束符’\0’。
c_str()返回一个以‘\0’结尾的字符数组,返回的是指针类型。
注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针
比如:char c[20];
string s=“1234”;
strcpy(c,s.c_str());
这样才不会出错,c_str()返回的是一个临时指针,不能对c=s.c_str();进行操作
2.
char*或char[ ]转string
可以直接赋值。
string s1;
string s2;
char* p = "adghrtyh";
const char a[] ="adghrtyh";
s1=a;
s2 = p;
注意:用printf("%s",s2);输出是会出问题的。printf("%s",s2.c_str());这样是对的。当然,直接用cout不会出现问题
3、
char转int*
char *a="1212";
int b=atoi(a);
输出1212
4、
string转int
需要先将string转换成char*再转换成int
string str="1234";
char *a=str.c_str(str);
int b=atoi(a);
输出b为1234
5、
int转string
int n = 0;
stringstream ss;
string str;
ss<<n;
ss>>str;