小试牛刀
题目:输入大写字母,输出小写字母
例:输入:A
输出:a
温馨提示:可以通过下面链接听下鹏哥讲
前提知识:
1、getchar是可以读取单个字符的函数,返回的字符是ASCII码值(整数),所以用int定义。
2、getchar在读取结束或者失败的时候,会返回EOF。注意:EOF意思是end of file,本质上是-1.
3、while循环里的getchar()是为了吸收你无意中打印的回车键,即"\n"
#include<stdio.h>
#include<string.h>
int main() {
int ch = 0;
while ((ch=getchar()) != EOF) {
printf("%c", ch + 32); //ch+32通过ASCII码值的转换,从大写变小写
getchar(); //此处是为了吸收\n,不然会通过ASCII码变成*
}
return 0;
}
还有一种写法,稍微麻烦点,也只是为了用putchar而用。
#include<stdio.h>
#include<string.h>
int main() {
int ch = 0;
while ((ch=getchar()) != EOF) {
putchar(ch+32); //putchar是输出
printf("\n");
getchar();
}
return 0;
}
getchar先读取一个字符放到ch里面去,如果这个字符不等于EOF,就进入循环,打印这个字符。
当getchar读到文件末尾或者结束时,它会返回一个EOF,此时结束循环。
注意: printf("%c",ch) 与 putchar(ch) 输出结果一样
注意:如果想要结束连续输入 输入:ctrl+z 即可
总结:
getchar() 输入一个字符,但是其输出的内容是ASCII码值,相当于scanf
ch = getchar 用一个变量去接收ASCII值
putchar(ch) 输出一个字符到屏幕上,相当于printf
渐入佳境(相信自己)
题目:从键盘任意输入一个字符,编程判断是否是字母(包括大小写)
输入描述:多组输入,每行输入包括一个字符
输出描述:针对每行输入,输出该字符是字母(YES)或不是(NO)
例:输入:H
9
输出:YES
NO
#include<stdio.h>
int main() {
int ch = 0;
while((ch=getchar())!=EOF){
if (((ch>='a')&&(ch<='z'))||((ch>='A')&&(ch<='Z'))) {
printf("YES\n");
}
else {
printf("NO\n");
}
getchar();
}
return 0;
}
可以简化!!!
isalpha 是专门用来判断一个字符是不是字母
是字母返回非零值
不是字母返回0
头文件是<ctype.h>
#include<stdio.h>
#include<ctype.h>
int main() {
int ch = 0;
while((ch=getchar())!=EOF){
if (isalpha(ch)) {
printf("YES\n");
}
else {
printf("NO\n");
}
getchar();
}
return 0;
}
希望这篇文章对你有一点帮助,谢谢阅读。