标准C/C++字符串和数字的转化

C语言的两个头文件:

1、

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、中   ato xx  和  strto xx 系列:

strtol()  和 strtof() .

C++中使用流处理

3、

类stringstream, 注意 .clear() 和 .str() 函数的清理,使用防止转化错误。  //将基本类型都抽象为流,以一种基本类型存入,另外一种取出。

4、C++11中的string类对象与数字的转化


stoi()  ,   stof(),  stod()    和  to_string.

详细用法查询这里点击打开链接

你可能感兴趣的:(C++,LEARNING,DIARY)