【整理】C++ string转int,string转double,string转long,int转string,double转string…
来源:互联网 发布:linux 查看raid卡型号 编辑:程序博客网 时间:2024/04/30 06:47
原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: 【整理】C++ string转int,string转double,string转long,int转string,double转string…
C++开发中,经常遇到各种基本类型与string的转换,掌握本博文,便可以轻松应对C++各基本类型与string的转换(比如:
int转string,double转string,long转string,string转int,string转double,string转long
...)。
第一种:基于C++ 11标准:
基于C++11标准
如果你用的编译器是基于最新的C++11标准,那么这个问题就变的很简单,因为<string>中已经封装好了对应的转换方法:
标准库中定义了to_string(val);可以将其它类型转换为string。还定义了一组stoi(s,p,b)、stol(s,p,b)、stod(s,p,b)等转换函数,可以函数,可以分别转化成int、long、double等.
stoi(s,p,b);stol(s,p,b);stoul(s,p,b);stoll(s,p,b);stoull(s,p,b); 返回s的起始子串(表示整数内容的字符串)的数值,返回值的类型分别为:int、long、unsigned long、long long、unsigned long long.其中b表示转换所用的基数,默认为10(表示十进制).p是size_t的指针,用来保存s中第一个非数值字符的下标,p默认为0,即函数不返 回下标.
stof(s, p); stod(s, p); stold(s, p); 返回s的起始子串(表示浮点数内容)的数值,返回值的类型分别是float、double、long double.参数p的作用与整数转换函数中的一样。
voidtestTypeConvert(){ //int --> string inti = 5; string s = to_string(i); cout << s << endl; //double --> string doubled = 3.14; cout << to_string(d) << endl; //long --> string longl = 123234567; cout << to_string(l) << endl; //char --> string charc = 'a'; cout << to_string(c) << endl; //自动转换成int类型的参数 //char --> string string cStr; cStr += c; cout << cStr << endl; s = "123.257"; //string --> int; cout << stoi(s) << endl; //string --> int cout << stol(s) << endl; //string --> float cout << stof(s) << endl; //string --> doubel cout << stod(s) << endl;}
第一种方法记得编译的时候加上支持C++ 11的参数:-std=c++0x
输出结果:
53.14000012323456797a123123123.257123.257
第二种:C++ 11标准之前:
C++11标准之前
C++11标准之前没有提供相应的方法可以调用,就得自己写转换方法了,代码如下:
从其它类型转换为string,定义一个模板类的方法。
从string转换为其它类型,定义多个重载函数。
#include <strstream>template<classT>string convertToString(constT val){ string s; std::strstream ss; ss << val; ss >> s; returns;} intconvertStringToInt(conststring &s){ intval; std::strstream ss; ss << s; ss >> val; returnval;} doubleconvertStringToDouble(conststring &s){ doubleval; std::strstream ss; ss << s; ss >> val; returnval;} longconvertStringToLong(conststring &s){ longval; std::strstream ss; ss << s; ss >> val; returnval;} voidtestConvert(){ //convert other type to string cout << "convert other type to string:" << endl; string s = convertToString(44.5); cout << s << endl; intii = 125; cout << convertToString(ii) << endl; doubledd = 3.1415926; cout << convertToString(dd) << endl; //convert from string to other type cout << "convert from string to other type:" << endl; inti = convertStringToInt("12.5"); cout << i << endl; doubled = convertStringToDouble("12.5"); cout << d << endl; longl = convertStringToLong("1234567"); cout << l << endl;}
结果如下:
convert other type to string:44.51253.14159convert from string to other type:1212.51234567
- 【整理】C++ string转int,string转double,string转long,int转string,double转string…
- 【C++】int转string,double转string方法,string转int,string转double方法
- :string转int,double? (C/C++)
- string转int,double? (C/C++)
- C++: string 转 int ;string转float;int 转string;double转char*
- 将int/double 转string类型
- c++ int、char、double转string
- Java String转int、float、double
- 如何将int,double转std::string? (C/C++) (template)
- C++:int转string
- c++int转string
- C++int转string
- string转double
- Java double转String
- Java double转String
- string转double
- C++ string转double
- Java double转String
- 虚拟机安装red hat后为什么不能联网?
- 逻辑与,逻辑或的使用
- 简单工厂模式、单例模式以及MVC模式
- 51nod 1009 数字1的数量
- 【整理】C++ string转int,string转double,string转long,int转string,double转string…
- 网易新闻API接口的实现(Picasso类库的使用与HTTP协议的get请求,BitMap样例(未使用))
- 解决RecyclerView加载图片时复用itemview导致的图片数量错乱问题
- 莫让奔波收效甚微
- Java中对Redis的缓存
- K-SUM
- 欢迎使用CSDN-markdown编辑器
- 如何将windows系统硬盘内的文件移动到linux系统硬盘内?
- Ipv6+高级网络配置