原文:http://hi.baidu.com/hellosim/blog/item/df6f911c0a63995e42a9ad67.html
最近准备找工作,写点题练练手。没有出现内存错误,真是写C语言一大进步啊。
其中:char c = value % 10 + '0'; 开始一直写成了减号,这下记住了。字符数字转换为整数数字是减'0', 整数数字转换为字符数字是加‘0’。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 100
char *simple_itoa(int value)
{
char *string = malloc(MAX);
int i = 0, j = 0;
int len = 0;
// make value to string: 12345 -> "54321"
while (value != 0) {
char c = value % 10 + '0';
string[i++] = c;
value /= 10;
}
string[i] = '\0';
//reverse string: "54321" -> "12345"
len = strlen(string);
for(j=0; j<len/2; j++) {
char temp = string[j];
string[j] = string[len-j-1];
string[len-j-1] = temp;
}
return string;
}
int main()
{
int value = 12345;
printf("%s\n", simple_itoa(value));
return 0;
}
输出:
12345