|
5鱼币
请问一下为什么要在转化后的每个字符后面加一个'0'才能正常输出呢?我一开始自己写的代码不加'0'就输出不了,看了小甲鱼的答案也不知道为什么一定要加这个
- char *myitoa(int num, char *str)
- {
- int dec = 1;
- int i = 0;
- int temp;
- if (num < 0)
- {
- str[i++] = '-';
- num = -num;
- }
- temp = num;
- while (temp > 9)
- {
- dec *= 10;
- temp /= 10;
- }
- while (dec != 0)
- {
- str[i++] = num / dec + '0';
- num = num % dec;
- dec /= 10;
- }
- str[i] = '\0';
- return str;
- }
- int main(void)
- {
- char str[10];
- printf("%s\n", myitoa(520, str));
- printf("%s\n", myitoa(-1234, str));
- return 0;
- }
复制代码
加'0'是将原来的数字转成该数字对应的ASCII码。
例如1的ASCII是十进制65,0的ASCII是十进制64,那么1+'0'就是1+64=65,就将数字转为所对应的ASCII码了,这样就是真正的字符串了
|
最佳答案
查看完整内容
加'0'是将原来的数字转成该数字对应的ASCII码。
例如1的ASCII是十进制65,0的ASCII是十进制64,那么1+'0'就是1+64=65,就将数字转为所对应的ASCII码了,这样就是真正的字符串了
|