c语言实现itoa函数的简单介绍

c语言 求itoa函数的原型以及itoa函数的用法itoa将任意类型c语言实现itoa函数的数字转换为字符串
#include stdlib.h
#include stdio.h
int main(void)
{
int number=123456;
char string[25];
itoa(number,string,10);
printf("integer=%d string=%s\n",number,string);
return0;
}
atoi (表示 ascii to integer)是把字符串转换成整型数c语言实现itoa函数的一个函数
#include stdlib.h
#include stdio.h
int main(void)
{
int n;
char *str = "12345.67";
n = atoi(str);
printf("n=%d\n",n);
return 0;
}
C语言 编写函数itoa(int n,char *p)有2种方式实现 , 其中两种是使用系统函数,另一种是直接自己编写 。
下面的代码就是2种方式的实现,包括任意整数(2的31次方以内)都可以 。可自己选择需要的实现方式 。
1. 利用系统函数 。sprintf(str,"%d",value);str是转化存储的位置,%d表示十进制格式,value是要转化的数字 。所以代码可以为:
char * itoa(int n, char * p)
{
sprintf(p, "%d", n);
return (p);
}
2. 自己编写 。由于计算方法是每次都除以10和对10取余数,余数以倒序的顺序排列就是结果,所以最佳方法是用递归函数(当然循环也可以,但需要最后再进行倒序) 。递归代码如下:
static int i = 0;
char * itostr(int n, char * p)//递归函数
{
if (n10)//递归结束条件
{
p[i] = n + '0';//当前数转换成字符放入字符串
}
else
{
itostr(n / 10, p);//递归调用
i++;//字符串索引+1
n %= 10;//计算当前值
p[i] = n + '0';//当前数转换成字符放入字符串
}
p[i+1] = '\0';//字符串结束标志
return (p);
}
char * itoa(int n, char * p)
{
i = 0;//初始化下标为0
itostr(n, p);
}
最后测试代码如下(以自己编为例,其余只要替换intoa函数中的代码内容即可):
#include stdio.h
static int i;
char * itostr(int n, char * p)//递归函数
{
if (n10)//递归结束条件
{
p[i] = n + '0';//当前数转换成字符放入字符串
}
else
{
itostr(n / 10, p);//递归调用
i++;//字符串索引+1
n %= 10;//计算当前值
p[i] = n + '0';//当前数转换成字符放入字符串
}
p[i+1] = '\0';//字符串结束标志
return (p);
}
char * itoa(int n, char * p)
{
i = 0;//初始化下标为0
itostr(n, p);
}
int main ()
{
int num;
char str[33];
printf ("Enter a number: ");
scanf ("%d",num);
itoa (num, str);
printf ("The number: %s\n", str);
return 0;
}
C语言里itoa函数的功能是什么?itoa为c语言的一个函数 。itoa函数是一个广泛应用的,从非标准扩展到标准的C语言 。它不能被移植,因为它不是标准定义下的C语言,但是,编译器通常在一个不遵循程式标准的模式下允许其通过header
,因为它是一个从逻辑对应到标准库的函数 。itoa取整数输入值,并将其转换为数字的基数 。
原型
char
*itoa(
int
value,
char
*string,int
radix);
原型说明:
value:欲转换的数据 。
string:目标字符串的地址 。
radix:转换后的进制数,可以是10进制、16进制等 。
功能
把一个整数转换为字符串
用法
itoa(i
,num
,10
);
i
----
需要转换成字符串的数字
num
----
转换后保存字符串的变量
10
【c语言实现itoa函数的简单介绍】----
转换数字的基数(即进制) 。10就是说按10进制转换数字 。还可以是2,8,16等等你喜欢的进制类型

推荐阅读