string与数值类型相互转换有以下几种方法:
方法一,使用stringstream流进行转换
C++中将形如”1234″的string字符串转化为int型整数”里所介绍的方法其实是将string字符串先转换为C风格的字符串,再利用
C语言
提供的库函数atoi将字符串转换为整型数。这种方法严格来说不是C++的做法,因为C++本身就提供了字符串与整型数之间的互换,那就是利用stringstream。下面是使用方法:
核心: 利用C++中的stringstream流。
由于使用过程比较简单就不再赘述,直接给出示例,重要的地方在示例注释中给予说明。
完整示例:
#include <iostream>
#include <string>
#include <sstream> //要使用stringstream流应包含此头文件
using namespace std;
int main()
{
stringstream stream; //声明一个stringstream变量
int n;
string str;
//string转int
stream << “1234”; //向stream中插入字符串”1234″
stream >> n; //从stream中提取刚插入的字符串”1234″
//并将其赋予变量n完成字符串到int的转换
cout << n << endl; //输出n
stream.clear(); //同一stream进行多次转换应调用成员函数clear
//int转string
stream << 1234; //向stream中插入整型数1234
stream >> str; //从steam中提取刚插入的整型数
//并将其赋予变量str完成整型数到string的转换
cout << str << endl; //输出str
return 0;
}
方法二:使用c的库函数进行转换
参考如下代码段:
#include <iostream>
#include <string>
using namespace std;
int main()
{
int data;
string s1=”12″;
sscanf(s1.c_str(),”%d”,&data);
cout<<data<<endl;
return 0;
}
方法三:
直接使用atoi()函数对s1.c_str()进行转换,这里不再赘述