JAVA中iString转int可以借助
String.ValueOf(int i)来实现,转换后的结果是一个String类型的字符串,值就是int i的值,这样做非常方便,因为可以将int型的数据方便地插入到String字符串当中。
C++在实现这类转换的时候稍微复杂,因为C++没有ValueOf(int i)这种方便的函数。
一般在C++中,我们使用sscanf()函数和sprintf函数进行这类操作的转换,C++还有其他类型的函数,但是对各类编码的支持不好,如果掌握了sscanf和sprintf也就没必要去了解其他的函数了。
将int转换为String:
int i=100;
char a[10];
sprintf(a,"%d",i);
这里的a必须是char*,而不能是string
char *类型不能直接使用+运算符,使用不便,这个时候将其转换成string类型的
string b=a;
我们输出一下b.size(),结果是3。
现在大家已经明白了原理。
我们再来看看string转int。这次要用sscanf
int a;
string b="25";
因为sscanf不能直接支持string,而必须使用char*类型,所以我们先做个转换。
char c[10]; 这里的c不能是*c,而必须是c[10]这种,否则strcpy无法使用。
strcpy(c,b.c_str());
sscanf(c,"%d",&a);
输出一下,a=25.
接下来就是记忆了,sprintf和sscanf的参数怎么记呢?我总结了下面的规律。
三个参数,第一个一定是char*类型的,第二个是“%d”这种类型的,第三个是int型的,sscanf和scanf一样,最后一个前面的符号需要加&。
以后进行int和string之间的转换就不成问题了。