int与string类型转换

一、int到string类型转换
int类型到string类型的转换在编程中经常用到,每次都是忘了就查,然后还记不住,今天索性总结一次。
int类型转string类型的方法目前我总结出了三种,如下所示:

(1)使用itoa
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    int a = 10;
    char intstr[20];
    itoa(a,intstr,10);
    string str = string(intstr);
    cout<<str<<endl;
    return 0;
}
这种方法不是很好用,平时我基本也没用过。
(2)使用stringstream
#include<iostream>
#include <sstream>

using namespace std;

int main()
{
    int a = 10;
    stringstream ss;
    ss<<a;
    string str = ss.str();
    cout<<str<<endl;
    return 0;
}这种我用的比较多。
(3)今天新学到的一种方法,比较简便。
#include <iostream>
#include <string>

using namespace std;

int main()
{
    int a = 10;
    string str = to_string(a);
    cout<<str<<endl;
    return 0;
}注意这个函数在VS2013中是可以使用的,但是在codeblocks 16.01中却编译不通过,我大略的在网上查了一下,好像是codeblocks用的MingW的bug。具体的看这个链接点击打开链接


二、string到int的转换
(1)使用atoi函数
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    string s = "10";
    int a = atoi(s.c_str());
    cout<<a<<endl;
    return 0;
}注意这里不能直接使用string类型,要把string类型转换为char型数组。
但是C++11给出了一种新的替换方法,如下所示:
#include <iostream>
#include <string>
using namespace std;

int main()
{
    string str = "10";
    int a = stoi(str);
    cout << a << endl;
    return 0;
}注意这种方法在codeblocks中仍然无法通过编译。

(2)使用istringstream
#include <iostream>
#include <sstream>

using namespace std;

int main()
{
    string s = "10";
    istringstream ss(s);
    int a;
    ss>>a;
    cout<<a<<endl;
    return 0;
}
--------------------- 
作者:lhanchao 
来源:CSDN 
原文:https://blog.csdn.net/lhanchao/article/details/52096072 
版权声明:本文为博主原创文章,转载请附上博文链接!

猜你喜欢

转载自blog.csdn.net/Alisa_xf/article/details/83585117