|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
#include <stdio.h>
void main()
{
char c;
printf("输入字符:\n");
while ((c=getchar()) != '\n') //从输入获得字符,回车结束
{
if ((c >= 'A' && c <= 'Z')||(c >= 'a' && c <= 'z')) //如果输入A到Z或者a到z,则加4
{
c=c+4;
if ((c > 'Z' && c <= 'Z'+4) || (c > 'z')) //w,x,y,z特殊情况处理
{c=c-26;}
}
printf("%c",c); //输出,如果输入不是字母,直接原样输出
}
printf("\n");
}
以上是译文题我写的答案,但是我有个不懂的地方, while ((c=getchar()) != '\n') 这句是输入字符赋值给C直到C=回车。
那么我输入单个字符给C赋值,条件成立 运行加密过程,当我输入多个字符时 后面的字符应该覆盖掉前面C的值
为何输出时 却并不是输出最后输入的字符的加密结果,而是所有字符的加密结果。
程序并没有对C的值储存啊,这是什么机制。我一直弄不懂。
按照程序运行过程,应该我输入一个字符就给出一个结果,为什么是我输入完所有字符后,才输出结果。
求大神解惑! |
|