程序没看懂
2. C 语言中有个 atoi 函数(定义于 <stdlib.h> 头文件中),用于将字符串中的值解析为对应的整型数字。现在要求我们自己写一个程序,实现类似的功能。基本要求:
A. 将用户输入的字符串中代表数字的字符转换为整型数值e;~|NBt4
B. 打印转换结果版权属于:bbs.fishc.com
C. 只打印第一组数字来自:bbs.fishc.com
提示:你可以使用 break 语句在适当的时候跳出循环。
#include <stdio.h>
int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0');
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
}
请帮忙解释一下,越详细越好,谢谢哈
就是讲字符转成数据,然后放到正确的位上
举个例子,输入了'123\n'
第一次循环,ch为'1', num 为 1
第二次循环,ch为 '2' , num变成了12
第三次循环,ch为'3', num变成了123
第四次循环,ch为 '\n',走else分支,跳出 #include <stdio.h>
int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')//如果输入字符是0-9的数字
{
num = 10 * num + (ch - '0');//将这些字符按照十进制的方式依次存进整形num所在的内存中
}
else//如果输入的字符不在0-9之间 也就是输入了其他字符 例如空格,回车等’
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
} BngThea 发表于 2020-3-31 10:11
就是讲字符转成数据,然后放到正确的位上
举个例子,输入了'123\n'
第一次循环,ch为'1', num 为 1
请问那个break是跳出do while循环吗
Juniorboy 发表于 2020-3-31 11:48
请问那个break是跳出do while循环吗
对的 BngThea 发表于 2020-3-31 13:57
对的
明白了,谢谢哈!
页:
[1]