m0_70539212 2022-05-08 09:10 采纳率: 100%
浏览 152
已结题

用c语言把正整数转换成字符串

#include<stdio.h>
#include<string.h>
void fun(int a,char str[100])
{
int i=0;
do
{
str[i]=a%10+'0';
a=a/10;
i++;
}
while (a);
str[i]='\0';
}
int main()
{
int a;
char str[100];
printf("请输入一个正整数:\n");
scanf("%d",&a);
fun(a,str);
printf("字符串:\n");
for(int i=strlen(str)-1;i>=0;i--)
printf("%c",str[i]);
}
上面的代码前面的do while语句和后面的for语句是怎么运行的,为什么是这样写

  • 写回答

3条回答 默认 最新

  • 树下等苹果 2022-05-08 09:55
    关注

    注释写在代码相应位置,请查看

    
    #include<stdio.h>
    #include<string.h>
    void fun(int a, char str[100])
    {
        int i = 0;
        do
        {
            str[i] = a % 10 + '0';  //把a的个位转换成字符类型,并放入str字符数组中
            a = a / 10;                //把a/10,这样a的十位变成个位,支持下一次循环.如a=123,之前已经把3存入字符数组中,a=a/10=12(取整),下一次存入2,然后继续/10,存入1,最后1/10=0,结束循环
            i++;
        } while (a);                //循环条件a不等于0
        str[i] = '\0';                //数组后接一个'\0',作为停止符
    }
    int main()
    {
        int a;
        char str[100];
        printf("请输入一个正整数:\n");
        scanf("%d", &a);
        fun(a, str);
        printf("字符串:\n");
        for (int i = strlen(str) - 1; i >= 0; i--)  //strlen统计str数组的'\0'之前的元素数量,然后一个一个输出
            printf("%c", str[i]);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 5月16日
  • 已采纳回答 5月8日
  • 创建了问题 5月8日

悬赏问题

  • ¥15 Python时间序列如何拟合疏系数模型
  • ¥15 求学软件的前人们指明方向🥺
  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services