开发者社区> 问答> 正文

为什么这个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;
}

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

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

展开
收起
海边一只船 2020-05-27 15:57:32 952 0
1 条回答
写回答
取消 提交回答
  • #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;
    }
    
    
    2020-05-27 17:52:23
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载