c++中字符串和整数(数字)之间的转换
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2018-03-16 09:50:29
温馨提示:
学无止境,技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章
数字转字符串使用sprintf
//int数字 char str[10]; int a=1234321; sprintf(str,"%d",a); //double数字 char str[10]; double a=123.321; sprintf(str,"%.3lf",a); //转为十六进制字符串 char str[10]; int a=175; sprintf(str,"%x",a);//10进制转换成16进制,如果输出大写的字母是sprintf(str,"%X",a) -------------------- char *itoa(int value, char* string, int radix);
字符串转数字:使用sscanf()函数
//整形字符串转成数字 char str[]="1234321"; int a; sscanf(str,"%d",&a); //double字符串转成数字 char str[]="123.321"; double a; sscanf(str,"%lf",&a); //十六进制字符串转成10进制数字 char str[]="AF"; int a; sscanf(str,"%x",&a); //16进制转换成10进制 //还可以用数字和字符串混合模式来转换,如下输出24 int aa = 0; char cc[] = "ico24"; sscanf(cc, "ico%d", &aa); printf("%d", aa);
使用stringstream类
用ostringstream对象写一个字符串,类似于sprintf()
ostringstream s1; int i = 22; s1 << "Hello " << i << endl; string s2 = s1.str(); cout << s2;
用istringstream对象读一个字符串,类似于sscanf()
istringstream stream1; string string1 = "25"; stream1.str(string1); int i; stream1 >> i; cout << i << endl; // displays 25
函数转换(不推荐使用)
数字到字符串用itoa() 字符串到数字用atoi(),atol(),atof().