长话短说,有两种方法:
1. 直接利用 string 里面的函数:
详细介绍:string里面有什么?
字符串转换为数字:
主要是这几个函数: stoi, stoll, stod 等等,分别将 string 转换为int, long long , double型变量。
数字转换为字符串:
利用to_string()函数, 很多重载, 非常友好。
例子:
//字符串转换为数字
cout<<"字符串转换为数字:" <<endl;
string intStr="123456789";
cout<<"string To int: "<<stoi(intStr)<<endl;
string longlongStr="12345678987654321";
cout<<"string To long long: "<<stoll(longlongStr)<<endl;
string doubleStr="1234.56789";
printf("string To double: %f\n\n", stod(doubleStr));
//数字转换为字符串:
cout<<"数字转换为字符串:"<<endl;
double a=1234.56789;
string str=to_string(a);
cout<<"double To string: "<<str<<endl<<endl;
输出如下:

2. 利用 sscanf() 和 sprintf()
字符串到数字用 sscanf()函数 ,数字到字符串用sprintf()函数
我们默认的输入输出设备是屏幕, 只要我们我们将输入输出改为字符串, 就能实现转换效果。
例子:
//万能转换:
cout<<"万能转换:"<<endl;
double doubleIsMe;
sscanf("1234.56789", "%lf", &doubleIsMe);
printf("string To double: %f\n", doubleIsMe);
char print[10];
sprintf(print, "int To char[]: %d", 3*4);
printf("%s\n",print);
输出结果:

怎么理解呢?
我们经常用的 scanf() 和 printf() 实际上是指从屏幕读入数据, 向屏幕输出数据。
sscanf(“1234.56789”, “%lf”, &doubleIsMe) 意思就是说, 从”1234.56789“这个字符串中, 以 %lf 的方式读入数据, 到 doubleIsMe 对应的地址中去。
sprintf()工作原理同理, 就不赘述了。

1万+

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



