现在的位置: 首页 > 综合 > 正文

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

2018年05月05日 ⁄ 综合 ⁄ 共 1032字 ⁄ 字号 评论关闭

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

抱歉!评论已关闭.