c++ string与数值类型(如int)相互转换

  • Post author:
  • Post category:其他


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()进行转换,这里不再赘述



版权声明:本文为xiaodeguang原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。