C语言--getchar()函数超详细解析(多维度分析,小白一看就懂!!!)
目录
一、前言
二、什么是getchar()函数
三、getchar()函数的返回类型与机制
四、连续单个字符串 (代码演示)
五、getchar()函数其他用法,实战演练(重点)
(1)按照题目写出理想代码,but 出现了不理想的效果
(2)原因分析(原理详解)
(3)解决方法
(4)再次练手
五、实战演练进阶:输入密码(超重点!!!)
(1)再次演练
(2)新的问题
(3)解决方法
六、共勉
一、前言
在写这篇文章之前,我对这些基础的函数总是持有一种似懂非懂的感觉没有太在意,直到我在刷题中遇到了满屏的烫烫烫烫烫烫烫烫烫烫烫烫趟或者就是输入字符总是不符合题目格式要求,至此我专门看了一些大佬的文章,做出了我得理解。
二、什么是getchar()函数
getchar()----读取单个字符的函数
注意:此时是读取单个字符
如果想要读取多个字符用到 gets()函数
三、getchar()函数的返回类型与机制
int getchar (void)
getchar()函数的返回类型为 int 整型 参数为 void
此时大家肯定会想,getchar()函数不是用来输入单个字符的吗,为什么返回类型为 int 整型呢 ?
1、getchar其实返回的是字符的ASCII码值(整数)。
2、getchar在读取结束或者失败的时候,会返回EOF。
注意:EOF意思是end of file,本质上是-1.
四、连续单个字符串 (代码演示)
#include #include int main() { int ch = 0; //因为 getchar() 返回类型为 int while ((ch = getchar()) != EOF) // 连续输入单个字符 { printf("%c",ch); // 输出一个字符 //putchar(ch); // 此时 printf("%c",ch) 与 putchar(ch) 输出结果一样 } return 0; }
解析:getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
注意: printf("%c",ch) 与 putchar(ch) 输出结果一样
注意:如果想要结束连续输入 输入:ctrl+z 即可
五、getchar()函数其他用法,实战演练(重点)
此时我们来看个经典的牛客例题,来看看平时我们做题的时候如何正确使用 getchar()函数
题目链接:判断是不是字母_牛客题霸_牛客网
题目描述:KiKi想判断输入的字符是不是字母,请帮他编程实现。请帮他编写程序判断输入的是字母输出(is an alphabet.)不是字母(is not an alphabet.)。
(1)按照题目写出理想代码,but 出现了不理想的效果
#include int main() { char a; while ((a = getchar()) != EOF) { if ((a >= 'a' && a = 'A' && a = 'a' && a = 'A' && a