C语言的两个头文件:
1、<stdio.h>中
sprintf() 和 sscanf() . //sscanf 和 scanf 的 %s格式时,会以空白字符为分界。
数字转字符串:
char * gcvt(double value, size_t ndigits,char *buf)
ndigits表示字位的个数(不包括符号和小数点),buf表示传入的缓存,最终的转换的结果在 buf 中存储。
double source = -300.123456789;
int ndigits = 6
char buf[25] = {0}; 转换之后,打印buf -300.1235
如果超出buffer的长度,会越界使用内存。
char *ecvt(double value, size_t ndigits, int *dec, int *sign)
char *fcvt(double value,size_t ndigits, int *dec, int *sign)
ecvt和fcvt的参数边为四个,函数内部已分配缓存区;输出字符串中不包含符号和小数点,小数点的位置由 *dec 决定,表示整数位的位数,符号由 *sign 决定,0 表示正,1表示负。区别在于:ndigits 对于fcvt 表示保留的小数数字的位数,而对于 ecvt 表示总的数字结果的位数。
上边的结果,fcvt得到的结果为 3001234568 *dec:3 *sign:1
ecvt得到的结果为 3001235 *dec:3 *sign:1
2、<stdlib.h>中 ato xx 和 strto xx 系列:
strtol() 和 strtof() .
C++中使用流处理
3、<ssteam>中
类stringstream, 注意 .clear() 和 .str() 函数的清理,使用防止转化错误。 //将基本类型都抽象为流,以一种基本类型存入,另外一种取出。
4、C++11中的string类对象与数字的转化
<string>
stoi() , stof(), stod() 和 to_string.
详细用法查询这里点击打开链接