homeskating 发表于 2022-11-10 11:08:58

加一个'0'的作用是什么?

#include <stdio.h>

char *myitoa(int num, char *str);

char *myitoa(int num, char *str) {
        int dec = 1;
        int i = 0;
        int temp;

        if (num < 0) {
                str = '-';
                num = -num;
        }

        temp = num;

        while (temp > 9) {
                dec *= 10;
                temp /= 10;
        }

        while (dec != 0) {
                //这里加一个'0'的作用是
                str = num / dec + '0';
                num = num % dec;
                dec /= 10;
        }

        str = '\0';

        return str;
}

int main(void) {
        char str;

        printf("%s\n", myitoa(520, str));
        printf("%s\n", myitoa(-1234, str));

        return 0;
}

tommyyu 发表于 2022-11-10 11:24:21

数字0 + '0' 就相当于 0 + '0'的ASCII码,就变成了0+48 = 48,也就是'0'
同理,1+'0' = 1+48 = 49 = '1'的ASCII码 = '1'
2+'0' = 2+48 = 50 = '2'

所以,加上 '0' 就是把这个数字变成字符

两手空空儿 发表于 2022-11-10 11:33:24

//这里加一个'0'的作用是
                str = num / dec + '0';
楼上说的对,为了鱼币,再回一下,哈哈哈哈
以字符‘0’是基准点,拿到的一位数字是0就+0,转换成字符‘0’,是5就+5,转换成字符‘5’, 就是这样

zhangjinxuan 发表于 2022-11-10 17:37:48

是的,就是这个意思,+‘0’是为了将一个数字转换为一个字符

homeskating 发表于 2022-11-11 10:17:58

感谢各位的回答

wangyanren 发表于 2022-11-11 14:48:32

只想领个币

hellometa 发表于 2022-11-14 09:24:59

领币学习

lxping 发表于 2022-11-14 09:26:49

领个币{:10_256:}
页: [1]
查看完整版本: 加一个'0'的作用是什么?