目录
1、是多组输入
2、scanf 返回值是:读取的字符的个数(解题关键!!!!)
scanf读取一个字符时,返回1;scanf读取失败时,返回EOF。(解题关键!!!!)
3、字符可以加减整数,因为字符的ASCII值就是整数,字符加减整数,其实就是ASCII值在加减整数。
4、if...else if....后面可以不加else(具体原因我还有待解决)
以下4个代码很类似,都可以
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch) == 1)
- {
- if (ch >= 'a' && ch <= 'z')
- printf("%c\n", ch - 32);
- else
- printf("%c\n", ch + 32);
- getchar();//处理'\n'
- }
-
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch)==1)
- {
- if (ch >= 'a' && ch <= 'z')
- printf("%c\n", ch - 32);
- else if (ch >= 'A' && ch <= 'Z')
- printf("%c\n", ch + 32);
- }
-
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch)!=EOF)
- {
- if (ch >= 'a' && ch <= 'z')
- printf("%c\n", ch - 32);
- else
- printf("%c\n", ch + 32);
- getchar();//处理'\n'
- }
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch) != EOF)
- {
- if (ch >= 'a' && ch <= 'z')
- printf("%c\n", ch - 32);
- else if (ch >= 'A' && ch <= 'Z')
- printf("%c\n", ch + 32);
- }
-
- return 0;
- }
因为VS编译器本身的问题,在VS上Ctrl+Z可能要多输入jig
库函数中:
判断是不是小写字母的函数 :islower()
判断是不是大写字母的函数 :isupper()
小写转大写:toupper()
大写转小写:tolower()
头文件:#include <ctype.h>
- #include <stdio.h>
- #include <ctype.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch)==1)
- {
- if (islower(ch))
- printf("%c\n", toupper(ch));
- if (isupper(ch))
- printf("%c\n", tolower(ch));
- getchar();
- }
-
- return 0;
- }
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while(scanf("%c",&ch) == 1)
- {
- if((ch >='a'&&ch <='z')||(ch >= 'A'&&ch <='Z'))
- printf("%c is an alphabet.\n",ch);
- else
- printf("%c is not an alphabet.\n",ch);
- getchar();
- }
- return 0;
- }
scanf(" %c", &ch) == 1
在%c的前面加空格:跳过下一个字符前的所有空白字符(这样就不需要getchar();了)
什么是空白字符?
空白字符,也可简称“空白符”,通俗理解,就是不会显示出来的字符,类似空格符、回车换行符、制表符之类的字符,从视觉效果上来看,只是一个空白区域而已。
- #include <stdio.h>
-
- int main()
- {
- char ch = 0;
- while (scanf(" %c", &ch) == 1)//%c前加了个空格
- {
- if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z'))
- printf("%c is an alphabet.\n", ch);
- else
- printf("%c is not an alphabet.\n", ch);
-
- }
- return 0;
- }
库函数中:
判断是不是字母的函数 :isalpha()
头文件:#include <ctype.h>
- #include <stdio.h>
- #include <ctype.h>
-
- int main()
- {
- char ch = 0;
- while (scanf("%c", &ch) == 1)
- {
- if (isalpha(ch))
- printf("%c is an alphabet.\n",ch);
- else
- printf("%c is not an alphabet.\n", ch);
- getchar();
- }
-
- return 0;
- }