C语言课后题求句子里的大写字母数
#include <stdio.h>int main()
{
int ch;
printf("请输入一行英文句子:");
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;
}
为什么while 里getchar放在外面,程序运行就一直卡主,如下:
ch = getchar();
while (ch!= '\n')
还有为什么用的是int而不是char?
求大神解答{:10_254:} ch = getchar();
while (ch!= '\n')
先执行ch = getchar()
输入字符
再执行循环判断是否是换行
只要输入的字符不是换行就是死循环了 1. 如果放在测试条件中,每次执行循环体都要先执行 ch = getchar()。而如果将 ch = getchar() 放在循环外面,只执行一次 getchar(),如果用户不是先输入回车,ch 则永远不会为 '\n',会形成死循环。
2. 用 char 也可以。
页:
[1]