C++中string与int的相互转换实现代码

做ACM时,经常用到string和int的转换,下面的程序:

核心代码:

#include<iostream>
#include<string>
#include<sstream>


using namespace std;

int main()
{
 /////////////////////////// string 转为 int
 string str="1234";
 int n;
 istringstream iss;//istringstream从string读入,和cin一样仅仅重载了>>,可以把string转为int
 iss.clear();//每次使用前先清空
 iss.str(str);
 iss>>n;//将输入流中的内容写入到int n,
 cout<<n<<endl;

 //////////////////////////////// int 转为 string

 n=111;
 ostringstream oss;//用于向string写入,和cout<<一样,仅仅重载了<<
 oss<<n;
 str=oss.str();
 cout<<str<<endl;


 ///////////////////////////////// string 转为 int
 str="22222";
 sscanf(str.c_str(),"%d",&n); //scanf前面加s用于把str输入到n中
 cout<<n<<endl;


 /////////////////////////////// int 转为 string


 int ss=1000;
 char temp[64];
 sprintf(temp,"%d",ss); //printf前面加s用于将ss按整数形式输出到数组temp中,不能直接给str.c_str();
 str=temp;//再把数组temp赋值给str;
 cout<<str<<endl;
 return 0;
}