C语言数字转字符串函数大全:itoa、ltoa、ultoa、gcvt、ecvt、fcvt详解
C语言中ITOA()函数和ATOI()函数的详细说明(与字符C实现不可或缺)

C语言提供了几种标准库功能,可以将任何类型的数字(整数,长整数,浮点等)转换为字符串。
1.int/float到字符串/数组:
C语言提供了几种标准库功能,可以将任何类型的数字(整数,长整数,浮点等)转换为字符串。以下列出了每个函数的方法和描述。
●ITOA():将整数值转换为字符串。
●LTOA():将长整数值转换为字符串。
●ultoa():将未签名的长整数值转换为字符串。
●GCVT():将浮点数转换为字符串并围绕它们。
●ECVT():将双精度的浮点值转换为字符串,并且转换结果不包含小数点小数点。
●fcvt():将位数指定为转换精度,其余的与ecvt()相同。
此外,您还可以使用Sprintf系列功能将数字转换为字符串,该数字比ITOA()系列函数缓慢运行。
2.串/阵列到int/float
C/C ++语言提供了几个标准库功能,可以将字符串转换为任何类型(整数,整数,浮点等)。
●ATOF():将字符串转换为双精度浮点数。
●atoi():将字符串转换为整数值。
●atol():将字符串转换为一个长整数值。
●strtod():将字符串转换为双精度浮点数,并报告所有无法转换的剩余数字。
●strtol():将字符串转换为一个长整数值,并报告所有无法转换的剩余数字。
●strtoul():将字符串转换为无符号的长整数值,并报告所有无法转换的剩余数字。
这是使用itoa()函数将整数转换为字符串的示例:
# include
# include
void main (void)
{
int num = 100;
char str[25];
itoa(num, str, 10);
printf("The number 'num' is %d and the string 'str' is %s. \n" ,
num, str);
}
itoa()函数具有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是传输数字时使用的基数。在上面的示例中,转化基数为10.10:十进制; 2:二进制…
ITOA不是标准的C函数,它是Windows唯一的。如果您想编写跨平台程序,请使用sprintf。它是在Windows平台下扩展的。标准库包含Sprintf,其功能比此功能更强,并且其用法类似于printf:
char str[255];
sprintf(str, "%x", 100); //将100转为16进制表示的字符串。
以下功能可以将整数转换为字符串:
itoa()将整数值转换为字符串
itoa()将长整数值转换为字符串
ultoa()将未签名的长整数值转换为字符串
1。ATOI() - 将字符串转换为整数
测试点:将字符串转换为数字时了解相关的ASCII代码。
C实施:
#include
#include
int atoi (char s[]);
int main(void )
{
char s[100];
gets(s);
printf("integer=%d\n",atoi(s));
return 0;
}
int atoi (char s[])
{
int i,n,sign;
for(i=0;isspace(s[i]);i++)//跳过空白符;
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]==' -')//跳过符号
i++;
for(n=0;isdigit(s[i]);i++)
n=10*n+(s[i]-'0');//将数字字符转换成整形数字
return sign *n;
}
2。ITOA() - 将整数转换为字符串
通过将“ 0”添加到char类型中,整数上的每个位上的数字都会转换为char类型并存储在字符数组中。但是,请注意,需要使用反向字符串顺序的方法
C语言实施:
#include
#include
void itoa (int n,char s[]);
//atoi 函数:将s转换为整形数
int main(void )
{
int n;
char s[100];
printf("Input n:\n");
scanf("%d",&n);
printf("the string : \n");
itoa (n,s);
return 0;
}
void itoa (int n,char s[])
{
int i,j,sign;
if((sign=n)<0)//记录符号
n=-n;//使n成为正数
i=0;
do{
s[i++]=n%10+'0';//取下一个数字
}
while ((n/=10)>0);//删除该数字
if(sign<0)
s[i++]='-';
s[i]='\0';
for(j=i;j>=0;j--)//生成的数字是逆序的,所以要逆序输出
printf("%c",s[j]);
}
它是int转换字符串类型的函数