鱼C论坛

 找回密码
 立即注册
查看: 1048|回复: 12

[已解决]新人求教 课后作业S1E13关于 函数putchar的意思

[复制链接]
发表于 2023-5-12 21:37:59 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
我看了小甲鱼那个对putchar的介绍
while ((ch = getchar()) != '\n')

这后面那个'\n'是干嘛用的
getchar 函数从标准输入流(stdin)中获取下一个字符 这句话有更加通俗易懂的意思吗

while ((ch = getchar()) != '\n')
        {
                if (ch >= 'A' && ch <= 'Z')
                {
                        ch = ch - 'A' + 'a';
                }
                else if (ch >= 'a' && ch <= 'z')
                {
                        ch = ch - 'a' + 'A';
                }

                putchar(ch);    //这句是什么意义
        }

        putchar('\n'); //为什么还要再用一次

        return 0;
最佳答案
2023-5-12 21:49:06
首先,我们来逐步解释这段代码的作用。

这段代码的目标是从标准输入(通常是键盘输入)读取字符,对字符进行处理,然后输出到屏幕上。这里的处理是将大写字母转换为小写字母,将小写字母转换为大写字母。

1.  while ((ch = getchar()) != '\n') :这个循环会持续读取输入的字符,直到遇到换行符('\n')为止。换行符通常是用户按下Enter键时产生的。

2.  getchar 函数的作用是从标准输入流(stdin)中获取下一个字符。在这里,“标准输入流”指的是键盘输入。

3.  if 和 else if 语句分别用于判断读取到的字符是否为大写字母或小写字母,并进行相应的转换。

4.  putchar(ch) :这句代码的作用是将处理后的字符 ch 输出到屏幕上。

5. 在循环结束后, putchar('\n') 语句用于输出一个换行符。这样可以使得输出结果在屏幕上显示得更整齐。换行符在这里起到了类似于“Enter键”的作用,将光标移动到下一行的开头位置。

总结一下,这段代码的主要功能是读取用户输入的字符,将大写字母转换为小写字母,将小写字母转换为大写字母,并将处理后的字符输出到屏幕上。当遇到换行符时,循环结束,并在最后输出一个换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-12 21:47:20 | 显示全部楼层
'\n'表示换行符,是一个特殊的字符,表示将光标移到下一行的行首。在这里,while((ch = getchar()) != '\n')表示从输入流中不断读取字符并且判断是否读取到了换行符,如果读取到换行符就结束读取。这样做的目的是为了读取输入流中的一个完整行。

getchar函数是从标准输入流(stdin)中读取一个字符,并返回该字符的ASCII码。所以,while ((ch = getchar()) != '\n')表示从stdin中读取一个字符并赋值给变量ch,然后判断是否为回车符('\n'),如果不是则执行后面的代码,如果是则停止循环。

最后的putchar('\n')表示输出一个换行符,目的是为了使输出结果更美观,增加可读性。
有用请设置最佳答案
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-5-12 21:49:06 | 显示全部楼层    本楼为最佳答案   
首先,我们来逐步解释这段代码的作用。

这段代码的目标是从标准输入(通常是键盘输入)读取字符,对字符进行处理,然后输出到屏幕上。这里的处理是将大写字母转换为小写字母,将小写字母转换为大写字母。

1.  while ((ch = getchar()) != '\n') :这个循环会持续读取输入的字符,直到遇到换行符('\n')为止。换行符通常是用户按下Enter键时产生的。

2.  getchar 函数的作用是从标准输入流(stdin)中获取下一个字符。在这里,“标准输入流”指的是键盘输入。

3.  if 和 else if 语句分别用于判断读取到的字符是否为大写字母或小写字母,并进行相应的转换。

4.  putchar(ch) :这句代码的作用是将处理后的字符 ch 输出到屏幕上。

5. 在循环结束后, putchar('\n') 语句用于输出一个换行符。这样可以使得输出结果在屏幕上显示得更整齐。换行符在这里起到了类似于“Enter键”的作用,将光标移动到下一行的开头位置。

总结一下,这段代码的主要功能是读取用户输入的字符,将大写字母转换为小写字母,将小写字母转换为大写字母,并将处理后的字符输出到屏幕上。当遇到换行符时,循环结束,并在最后输出一个换行符。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2023-5-12 21:50:00 | 显示全部楼层
isdkz 发表于 2023-5-12 21:49
首先,我们来逐步解释这段代码的作用。

这段代码的目标是从标准输入(通常是键盘输入)读取字符,对字符 ...

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-5-12 21:50:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-12 22:08:40 | 显示全部楼层
sfqxx 发表于 2023-5-12 21:47
'\n'表示换行符,是一个特殊的字符,表示将光标移到下一行的行首。在这里,while((ch = getchar()) != '\n' ...

感谢大佬,懂了懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-12 22:09:17 | 显示全部楼层
isdkz 发表于 2023-5-12 21:49
首先,我们来逐步解释这段代码的作用。

这段代码的目标是从标准输入(通常是键盘输入)读取字符,对字符 ...

感谢大佬懂了懂了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:10:29 | 显示全部楼层
FanXing3 发表于 2023-5-12 22:09
感谢大佬懂了懂了

不客气,给个最佳支持一下呗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:22:37 | 显示全部楼层
isdkz 发表于 2023-5-12 22:10
不客气,给个最佳支持一下呗

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:23:13 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:23:18 | 显示全部楼层
isdkz 发表于 2023-5-12 22:10
不客气,给个最佳支持一下呗

凭什么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:24:44 | 显示全部楼层

你没有叫过楼主给最佳?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-12 22:43:35 | 显示全部楼层
isdkz 发表于 2023-5-12 22:24
你没有叫过楼主给最佳?

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-28 01:24

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表