#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语句是怎么运行的,为什么是这样写
用c语言把正整数转换成字符串
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
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]); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 Python时间序列如何拟合疏系数模型
- ¥15 求学软件的前人们指明方向🥺
- ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
- ¥20 双层网络上信息-疾病传播
- ¥50 paddlepaddle pinn
- ¥20 idea运行测试代码报错问题
- ¥15 网络监控:网络故障告警通知
- ¥15 django项目运行报编码错误
- ¥15 STM32驱动继电器
- ¥15 Windows server update services