自我实现itoa(整形转字符串)
如: 123 转换成 “123”
“-123” 转换成 -123
#include <stdio.h>
int IntegerToString(int num, char *str)
{
if (str == NULL)
{
return -1;
}
int temp = num; //先定义临时变量记录num
int len = 0; //num 的位数
int count = 0;
int flag = 1;
if (num < 0)
{
flag = -1; //负数则放置标志-1,并先转化为正数处理
num *= -1;
}
while (temp)
{
temp /= 10;
len++; //num的位数
}
count = len;
while (num)
{
str[--len] = num % 10 + '0'; //将各位数转为字符串放在数组里
num /= 10;
}
str[count] = '\0';
if (flag == -1) //处理负数
{
while (count >= 0)
{
str[count + 1] = str[count]; //将数组整体后移1位
count--;
}
str[0] = '-'; //将'-'插入到开头
}
}
int main()
{
int num = 0;
char str[100] = {0}; //用于存放处理好的字符串
printf ("please input a integer: ");
scanf ("%d", &num);
printf ("The original number is %d\n", num);
if ( IntegerToString(num, str) == -1 )
{
printf ("function IntegerToString error!\n");
return -1;
}
printf ("The result is %s\n", str);
return 0;
}