char *itoa(int value, char *string, int radix);
头文件<stdlib.h>
程序实例:
#include <stdlib.h>
#include <stdio.h>
int main()
{
int number = 123456;
char string[25];
itoa(number, string, 10);
printf("integer = %d string = %s\n", number, string);
return 0;
}
itoa函数的实现
//----------------------------------------
// 实现 itoa() 函数
//----------------------------------------
char* myitoa(int n, char* str, int radix){
int a = n;
int b = 0;
int c = 1;
char* p = str;
if (0 == a){ // 如果是0,直接输出"0"
strcpy(str, "0");
return str;
}
else if (a < 0){ // 如果是负数,记下负号
c = -1;
a = -a;
}
while(a > 0){ // 反复取余
b = a % radix;
a = a / radix;
if (b < 10)
*p = b + '0'; // 0-9 直接输出"0"-"9"
else
*p = b - 10 + 'A'; // > 10 输出"A"-...
p++;
}
if (c < 0) *p++ = '-'; // 按需添加负号
*p = 0; // 字符串结尾
// 下面将字符串 str 逆序即可,也可调用系统函数 str = strrev(str);
int len = strlen(str); // 取出长度
int i = 0;
char ch = 0;
for (i = 0; i < len / 2; i++){// 首尾交换,共计 len / 2 次
c = str[i];
str[i] = str[len - i - 1];
str[len - i - 1] = c;
}
return str;
}
//----------------------------------------
// 测试 itoa()
//----------------------------------------
void Testmyitoa(void) {
int n = 0, r = 2;
char str[100];
// 下面输出为: itoa(11, 2) = 1011
n = 11; r = 2;
myitoa(n, str, r);
printf("itoa(%d, %d) = %s\n", n, r, str);
// 下面输出为:itoa(-3000, 16) = -BB8
n = -3000; r = 16;
myitoa(n, str, r);
printf("itoa(%d, %d) = %s\n", n, r, str);
}