C++ string与int的相互转换

今天做了两道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
        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函数,该函数有好多个重载

你可能感兴趣的:(c,string与int的转换)