类型转换 stdlib.h
int/float to string/array
整数转化为字符串 to
a:字符串
i:整型int
l:长整形 long
ul:无符号长整形 unsigned long
小数转化为字符串 cvt (略)
g:浮点数 ,包含小数点
e:双精度浮点数,没有小数点,如果超过value的数字长度不补零。
f:浮点数,没有小数点,如果超过value的数字长度将补零。
itoa():将整型值转换为字符串。
char *itoa (int value, char *str, int base );
【参数】
int value 被转换的整数
char *string 转换后储存的字符数组
int radix 转换进制数,如2,8,10,16 进制等
【返回值】:返回指向str的指针,无错误返回。
#include <stdlib.h>//cstdlib和stdlib.h都可以
#include <stdio.h>//cstdio和stdio.h都可以
//如果用的是cstdio和cstdlib,要加上 using namespace std;
int main(void)
{
int number = 123456;
char string[25];
itoa(number, string,10);
printf("integer=%d string=%s\n", number, string);
return 0;
}
ltoa():将长整型值转换为字符串。
【功能】把value的值转换为以NULL结束的字符串,并把结果存在string中。radix是转换的基数值
char *ltoa(long value,char *string,int radix)
【参数】
value :要转换的数值
string : 转换后指向字符串的指针
radix : 进制
ultoa():将无符号长整型值转换为字符串。
【功能】说明:ultoa函数把 value转换成一个以空字符结尾的radix进制的字符串,并存储在string中(至多33个字节),不执行上溢出检查。radix指出value的基数
char *ultoa(unsigned long value, char *string, int radix);
【参数】
value要转换的数
String 字符串结果
radix : 进制
#include
#include
int main( void )
{
unsigned long lnumber = 3123456789L;
char string[25];
ultoa(lnumber,string,10);
printf("string = %s unsigned long = %lu\n",string,lnumber);
return 0;
}
gcvt():将浮点型数转换为字符串,取四舍五入。
ecvt():将双精度浮点型值转换为字符串,转换结果中不包含十进制小数点。
fcvt():指定位数为转换精度,其余同ecvt()。
string/array to int/float
字符串转其他 to
a:字符串 ascii
f:浮点数
i:整型
str:字符串
d:双精度浮点数
atof():将字符串转换为浮点型值。
double atof(const char *nptr);
【函数说明】atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时(’\0’)才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。
【返回值】:返回转换后的浮点型数。
#include<stdlib.h>
int main()
{
char*a="-100.23";
char*b="200e-2";
double c;
c=atof(a)+atof(b);
printf(“c=%.2lf\n”,c);
return 0;
}
结果为 c=-98.23
atoi():将字符串转换为整型值。
int atoi(const char *str)
【参数】
str:要转换为整数的字符串。
【返回值】
该函数返回转换后的长整数
如果没有执行有效的转换,则返回零
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int val;
char str[20];
strcpy(str, "98993489");
val = atoi(str);
printf("字符串值 = %s, 整型值 = %d\n", str, val);
strcpy(str, "runoob.com");
val = atoi(str);
printf("字符串值 = %s, 整型值 = %d\n", str, val);
return(0);
}
字符串值 = 98993489, 整型值 = 98993489
字符串值 = runoob.com, 整型值 = 0