|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
实现功能
A. 将用户输入的字符串中代表数字的字符转换为整型数值
B. 打印转换结果
C. 只打印第一组数字
#include <stdio.h>
int main()
{
int ch;
int num = 0;
printf("请输入待转换的字符串:");
do//先进入循环
{
ch = getchar();//将获取的字符赋值给ch
if (ch >= '0' && ch <= '9')//如果ch在0和9之间
{
num = 10 * num + (ch - '0');//这个操作是什么意思呢?
}
else//如果ch不在0和9之间
{
if (num)//是指ch既不在0和9之间同时num不为0吗时则退出循环吗?
{
break; // 如果已有数字,则退出循环(这一个是为了实现 只打印第一组数字这个功能吗,怎么解释呢?
}
}
}
while (ch != '\n');//如果不是换行,则继续执行循环
printf("结果是:%d\n", num);
return 0;
}
希望大佬通俗的解释一下这个代码的流程谢谢
- #include <stdio.h>
- int main() {
- char ch;//char类型就行了
- int num = 0;// 用来存储数字
- printf("请输入待转换的字符串:");
- do { //先进入循环
- ch = getchar();//将获取的字符赋值给ch, 获取得到的是字符 字符'0'-'9' 转换为数字 操作为减掉字符'0'
- if (ch >= '0' && ch <= '9') { //如果ch在字符'0'和字符'9'之间
- num = 10 * num + (ch - '0');//用来纪录数字的,操作上面有例子
- } else { //如果ch不在字符'0'和字符'9'之间
- if (num) { //如果num!=0循环break退出
- break; // 如果已有数字,则退出循环(这一个是为了实现 只打印第一组数字这个功能吗,怎么解释呢?是,你输入多组数据 并且不是用换行 会输出第一组非0数字
- }
- }
- } while (ch != '\n'); //如果不是换行,则继续执行循环
- printf("结果是:%d\n", num);
- return 0;
- }
复制代码
|
|