string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
2016-08-05 21:13
639 查看
一、string转化为数字
1.使用stoi
<span style="font-size:18px;">#include <iostream> #include <string> using namespace std; int main() { string str = "123"; int a = stoi(str); cout << a; str = "123.44"; double b = stod(str); cout << b; return 0; } /* stoi如果是非法输入: 1.会自动截取最前面的数字,直到遇到不是数字为止 (所以说如果是浮点型,会截取前面的整数部分) 2.如果最前面不是数字,会运行时发生错误 */ /* stod如果是非法输入: 1.会自动截取最前面的浮点数,直到遇到不满足浮点数为止 (所以说如果是浮点型,会截取前面的整数部分) 2.如果最前面不是数字或者小数点,会运行时发生错误 3.如果最前面是小数点,会自动转化后在前面补0 */ /* 相应的还有: stof(string to float) stold(string to long double) stol(string to long) stoll(string to long long) stoul(string to unsigned long) stoull(string to unsigned long long) */</span>
2.使用stringstream
<span style="font-size:18px;">#include <iostream> #include <sstream> using namespace std; int main() { string str = "1234"; stringstream stream; stream << str; int a; stream >> a; cout << a; return 0; } /* 如果转int是非法输入: 1.会自动截取最前面的数字,直到遇到不是数字为止 (所以说如果是浮点型,会截取前面的整数部分) 2.如果最前面不是数字,会转化为整数0 */ /* 如果转double是非法输入: 1.会自动截取最前面的浮点数,直到遇到不满足浮点数条件为止 2.如果最前面不是数字或者小数点,会转化为整数0 3.如果最前面是小数点,会转化为浮点数后在前面自动补0 */ /* 其他数字类型也可以转化 */</span>注意:sscanf、sprintf、atoi 操作对象为 字符数组(char c[])
3.如果使用的不是string类,而是字符数组char c[]
①使用 sscanf
<span style="font-size:18px;">#include <iostream> #include <cstdio> using namespace std; int main() { char c[50] = "123"; int a; sscanf(c, "%d", &a); // 不要忘记 “&” int b = 567; sprintf(c, "%d", b); cout << a << endl << c; return 0; } /* sscanf将字符数组转换为数字,输入到数字变量中 sprintf将数字转换为字符数组,输出到字符数组变量中 */</span>
②使用 atoi / atol / atoll
<span style="font-size:18px;">#include <iostream> #include <string> using namespace std; int main() { char c[50] = "123"; int a = atoi(c); cout << a; return 0; }</span>
二、数字转化为string
1.使用to_string
<span style="font-size:18px;">#include <iostream> #include <string> using namespace std; int main() { int a = 123; string s = to_string(a); cout << s; return 0; }</span>
2.使用stringstream
<span style="font-size:18px;">#include <iostream> #include <sstream> using namespace std; int main() { stringstream stream; string str; int a = 123; stream << a; stream >> str; cout << str; return 0; }</span>
3.如果是字符数组(使用sprintf)
<span style="font-size:18px;">#include <iostream> #include <cstdio> using namespace std; int main() { char c[50] = "123"; int a; sscanf(c, "%d", &a); // 不要忘记 “&” int b = 567; sprintf(c, "%d", b); cout << a << endl << c; return 0; } /* sscanf将字符数组转换为数字,输入到数字变量中 sprintf将数字转换为字符数组,输出到字符数组变量中 */</span>
相关文章推荐
- string转int/float/double、int/float/double转string、转字符串数组的方法:stoi、stringstream、scanf、to_string、sprintf
- Bytes to float int String Double
- C# double float int string 与 byte数组 相互转化
- C# double float int string 与 byte数组 相互转化
- Android String类型转换为float、double和int的工具类方法
- Swift 如何将数字型字符串转换成String类型 (toInt()方法) 及返回值未解包的原因
- short,int,long,double,string,float与byte数组之间的转换
- IDL中将字符串转为double类型的数组的函数StringToDoubleArray
- JS的数组转换字符串方法toString、toLocaleString、join和valueOf — 第5.2.1节
- C# double float int string 与 byte数组 相互转化
- 创建一个名为myinput.java的程序:包含从键盘读取 int、double、float、boolean、short、byte和string值的方法
- 在c++Builder中使用boost正则表达式实现的查找double和int类型的字符串,并实现StringToInteger和StringToDouble函数
- [Scala--基础]--类型转换(String to Double 、Long、Float和Int)
- C# double float int string 与 byte数组 相互转化
- StringToDoubleArray函数:IDL中将字符串转换为double类型的数组
- 关于C++中string对象向int、float、double类型的转换的方法汇总
- c++中int,float,double转string的一个简单方法
- C# double float int string 与 byte数组 相互转化
- int、double、boolean、char、float、long、Object等七种数据类型转换成String数据类型 用到的方法是String.valueOf();
- JavaSE8基础 Arrays.toString 将一维int数组转成字符串输出