C++string和int类型的转换方法

来源:互联网 发布:机房网络拓扑 编辑:程序博客网 时间:2024/05/19 18:42

总结一下C++中string和int的两种转换方法。

第一种:使用C标准库中的函数atoi()和itoa():

#include <iostream>#include <string>using namespace std;int main(){string s = "250";int n = atoi(s.c_str());cout << typeid(n).name() << ":  " << n << endl;n++;char Buffer[10];sprintf(Buffer,"%d",n);s = Buffer;cout << s << endl;}

注意在这个方法中VS中会报告出现不安全,在配置属性->C/C++->预处理器加入_CRT_SECURE_NO_WARNINGS可以消除该警报。

第二种,使用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;}

第三种使用sprintf和sscanf,这两个函数是用来做字符数组和整数的转换的,然后在转换成为string。

#include <iostream>#include <string>using namespace std;int main(){string s = "1001";int a;sscanf_s(s.c_str(),"%d",&a);cout << a << endl;int b = 100;char ss[10];sprintf_s(ss, "%d", b);s = ss;cout << s << endl;return 0;}

第四中从C++11以后标准库中提供了stoi和to_string方法,可以很方便的进行转换。

#include <iostream>#include <string>using namespace std;int _tmain(int argc, _TCHAR* argv[]){string s = "1100";int a=stoi(s);cout << a << endl;string s1 = to_string(a);cout << s1 << endl;return 0;}


0 0
原创粉丝点击