C语⾔数值和字符串的相互转换
1、数值转换为字符串
(1)整数转换为字符串
itoa():将整型值转换为字符串
char *itoa (int value, char *str, int base);
int value为被转换的整数,char *str为转换后储存的字符数组,int base为转换进制数,如2,8,10,16 进制等,⼤⼩应在2-36之间。返回指向str的指针
但是,itoa()是⼀个⾮标准的C/C++语⾔函数,不能被所有编译器使⽤。⼤多数Windows编译器中,C语⾔包含在头⽂件
<stdlib.h>,C++包含在头⽂件<cstdlib>。
sprintf():把格式化的数据写⼊某个字符串中
int sprintf(char *string, char *format [,argument,...]);
返回以format为格式,argument为内容的结果被写⼊string字符串的字节数,结束字符‘\0’不计⼊内。
sprintf()是⼀个字符串格式化命令,包含在头⽂件<stdio.h>中。如果要将整数转换为字符串,则可以写成:sprintf(str, " %d" , num);(2)浮点数转换为字符串
ecvt():将双精度浮点型值转换为字符串,转换结果中不包含⼩数点或正负号。
char *ecvt(double value, int ndig, int *dec, int *sign);
将浮点数value以存储的有效数字位数ndig转换成字符串(超过位数的四舍五⼊,不超过的补0),其中不包括⼩数点和正负号。dec:返回⼩数点的位置,sign:返回符号,0表⽰正数,不为0表⽰负数。例如:char *s = ecvt(var, 5, &dec, &sign);
fcvt():把⼀个浮点数转换为字符串
⽤法同ecvt(),但fcvt()中的ndig是⼩数点后⾯的位数。
gcvt():将双精度浮点型值转换为字符串,转换结果中包含⼩数点或正负号。
char *gcvt(double number, size_t ndigits, char *buf);
将浮点数number转换成字符串,参数ndigits 表⽰显⽰的位数。将转换后的字符串存⼊buf 指针所指的空间。
2、字符串转换为数值
C语⾔提供了⼏个标准库函数,可以将任意类型(整型、长整型、浮点型等)的数字转换为字符串。
(1)字符串转换为整数
atoi()、atol()、strtol()、stroul()函数⽀持把字符串转换为不同类型的整型值,包含在头⽂件<stdlib.h>中。基本⽤法为:
int atoi(const char *str)
c++中string的用法把参数 str 所指向的字符串转换为⼀个相应类型整数。
atoi():将字符串转换成整型数
atol():将字符串转换成长整型数
strtol():将字符串转换成长整型数
strtoul():将字符串转换成⽆符号长整型数
(2)字符串转换为浮点数
atof():将字符串转换成浮点型数
double atof(const char *str)
把参数 str 所指向的字符串转换为⼀个双精度浮点数。
strtod():将字符串转换成浮点数
double strtod(const char *str, char **endptr)
把参数 str 所指向的字符串转换为⼀个双精度浮点数。endptr 是对类型为 char* 的对象的引⽤,如果该参数位置不为空,则指向 str 中数值后的下⼀个字符。
参考⽂章:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。