在c++中有时候需要对数据进行类型转化,今天我们来看一下c++中string与int相互转化的方法
1.int转string
c++11标准增加了全局函数std::to_string:
string to_string (int val);
string to_string (long val);
string to_string (long long val);
string to_string (unsigned val);
string to_string (unsigned long val);
string to_string (unsigned long long val);
string to_string (float val);
string to_string (double val);
string to_string(long double val);
例如:
// to_string example
#include <iostream> // std::cout
#include <string> // std::string, std::to_string
int main ()
{
std::string pi = "pi is " + std::to_string(3.1415926);
std::string perfect = std::to_string(1+2+4+7+14) + " is a perfect number";
std::cout << pi << '\n';
std::cout << perfect << '\n';
return 0;
}
output:
pi is 3.141593
28 is a perfect number
2.string转int
这里介绍一种我最常用的方法,使用stringstream,可以实现string与其他类型的转换。
例如:
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
{
string s = "250";
stringstream ss;
ss << s;
int n;
ss >> n;
cout << typeid(n).name() <<": "<<n<< endl;
ss.clear();
n++;
ss << n;
ss >> s;
cout << s << endl;
}
采用这种方法既能实现string转int也可以实现int转string