Puppypaw 2020-05-12 18:29 采纳率: 25%
浏览 700
已采纳

为什么这个C代码运行结果输出为空?

用C语言编写整数转换为字符串运行错误

代码

#include <stdio.h>
#include <stdlib.h>
char *itos(int num,char* str);

int main()
{
    int t;
    char s[8]={0};
    scanf("%d",&t);
    itos(t,s);
    printf("%s",s);
    return 0;
}

char *itos(int num,char* str)
{
    int i,j;
    char tmp[8]={0};
    for(i=0;i<9;i++)
    {
        str[i] = num%10 + '0';
        num = num/10;
        if(num == 0)
            break;
    }

    for(j=0;i>=0;i--)  //倒序放入str中
        str[j++] = tmp[i];
    str[j] = '\0';
    return str;
}

顺利通过编译,运行结果如下

图片说明

没输出出来字符串,看不出来问题了::>_<::

求各位大神给小弟指点一二

  • 写回答

1条回答 默认 最新

  • threenewbee 2020-05-12 21:51
    关注

    问题解决的话,请点下采纳

    #include <stdio.h>
    #include <stdlib.h>
    char *itos(int num,char* str);
    
    int main()
    {
        int t;
        char s[8]={0};
        scanf("%d",&t);
        itos(t,s);
        printf("%s",s);
        return 0;
    }
    
    char *itos(int num,char* str)
    {
        int i,j;
        char tmp[8]={0};
        for(i=0;i<9;i++)
        {
            tmp[i] = num%10 + '0'; //这里是tmp
            num = num/10;
            if(num == 0)
                break;
        }
    
        for(j=0;i>=0;i--)  //倒序放入str中
            str[j++] = tmp[i];
        str[j] = '\0';
        return str;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?