今天做了两道pat的题,遇到了string和int转换的问题,决定记录下来,总结一下。
string转int:
1.先说可能经常遇到的一个问题,就是想把string中的某一个字符转成int,其实很简单
比如:string s = "123";
int a;
那么可以这样写:a = s[0] - '0'; 输出a就是1
a = s[1] - '0'; 输出a就是2
2.还有一种情况是要把整个string字符串转成一个数字(不一定要是int)
此时可以用到sstream头文件,这个头文件似乎非常强大,这里只是用到冰山一角...
具体写法如下:
int convert(string str) //字符串转整数
{
stringstream s; //这里需要include <sstream>
int res;
s << str;
s >> res;
return res;
}
3.也可直接用atoi()函数 (转成其它类型的也都有类似的函数)
string s = "123";
int a = atoi(s.c_str());
int转string:
1.可以用sstream中定义的字符串流对象,写法和上述相似:
string itos(int i) //整数转字符串
{
stringstream s;
s << i;
return s.str();
}
2.也可以用to_string函数,该函数有好多个重载