参考以下博客
c++ 数字与字符串的相互转换
C语言字符串和数字转换函数大全
C++中数字与字符串之间的转换
感觉比较常用的,一个是自带的函数把字符串转成数字,另一个是c++把数字转换成字符串,如果大佬有更好的方法,还请指点
–>atof(将字符串转换成浮点型数)
–>atoi(将字符串转换成整型数)
–>atol(将字符串转换成长整数数)
- atof(将字符串转换成浮点型数)
表头文件: #include <stdlib.h>
定义函数: double atof(const char nptr);
函数说明: atof()会扫描参数nptr字符串,跳过前面的空格字符,直到>遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
返回值: 返回转换后的浮点型数。
附加说明: atof()与使用strtod(nptr,(char*)NULL)结果相同。/* 将字符串a 与字符串b转换成数字后相加*/ #include<stdlib.h> void main() { char *a = "-100.23"; char *b = "200e-2"; float c; c = atof(a) + atof(b); printf("c = %.2f/n", c); /* 运行结果 c = -98.23 */ }
- atoi(将字符串转换成整型数)
表头文件: #include<stdlib.h>
定义函数: int atoi(const char nptr);
函数说明: atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。
返回值: 返回转换后的整型数。
附加说明: atoi()与使用strtol(nptr,(char*)NULL,10);结果相同。/* 将字符串a 与字符串b转换成数字后相加*/ #include<stdlib.h> void mian() { char a[] = "-100"; char b[] = "456"; int c; c = atoi(a) + atoi(b); printf("c = %d/n",c); /* 运行结果 c = 356 */ }
3、atol(将字符串转换成长整型数)
表头文件: #include<stdlib.h>
定义函数: long atol(const char nptr);
函数说明: atol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时
(’/0’)才结束转换,并将结果返回。
返回值: 返回转换后的长整型数。
附加说明: atol()与使用strtol(nptr,(char*)NULL,10);结果相同。/*将字符串a与字符串b转换成数字后相加*/ #include<stdlib.h> void main() char a[] ="1000000000"; char b[] = "234567890"; long c; c = atol(a) + atol(b); printf("c = %d/n", c); /* 运行结果 c = 1234567890 */ }
c++常用的 数字转字符串
#include <string>
#include <sstream>
int main(){
double a = 123.32;
string res;
stringstream ss;
ss << a;
ss >> res;//或者 res = ss.str();
cout << res << endl;//或者printf("%s",res.c_str());
return 0;
}
/**对字符数组同样适用**/
int main()
{
int a = 110;
char res[20];
stringstream ss;
ss << a;
ss >> res;
printf("%s",res);
return 0;
}