c=getchar ();不是一次只能输入一个字符吗?为什么可以输入一串?

问题描述:

#include<stdio.h>
int main()
{
char c;
c=getchar();
while(c!='\n'){
if(c>='a'&&c<='z'||c>='A'&&c<='Z')
{if(c>='w'&&c<='z'||c>='W'&&c<='Z')
c-=32;
else c+=4;
}
printf("%c",c);
c=getchar();
}
printf("\n");
return 0;
}

img

                                                                                                                                    控制台
                                            无标题1.c Q Xo
                                                                                                                    China!
             z1.c 十 无标题1.c X
                                                                                                             2 Glmre!
      #include<stdio.h>
2 int mainO
4 char c
5 c=getcharO
          while(cl=n')
              if(c>='a&&c<='z'llc>=A'&&c<='Z)
                 fif(c>=w&&c<='z'llc>=W&&c<='Z)
9 C-=32:
10 elsec+=4:
12 printf("0c”,c);
3 C=getcharO;
          printf(”\n”)
16 return0;
 10

getchar()它确实每次只能读取一个字符,但是循环下一次遇到getchar()其实是从缓冲区读取用户上一次输入的字符串剩下的字符,直到遇到'\n'才结束

因为循环里面有c=getch()啊;
那就是循环输入单个字符,就是字符串了