C语言,一个小问题

来源:百度知道 编辑:UC知道 时间:2024/05/02 17:07:24
原题是课本里的例题..为:
译密码.为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文.例如:A译成E,a译成e.(有一个图案,我无法打上去,就是26个字母围成一个圆圈,按顺时针方向每个字母译成其后第4个.相信大家应该看过这样的题目)要求是,输入一行字符,要求输出其相应密码.
里面有一步程序我看不懂.就是 while((c=getchar())!='\n')
这里面为什么要不等于'\n'(尽量详细点,呵)
谢谢..
http://jwc.dep.dlili.edu.cn/jxcg/zyjsxy/web/jingpin/c_language/jcjs/wlkt3.39.htm 例6.10
译密码。为使电文保密,往往按一定规律将其转换成密码,收报人再按约定的规律将其译回原文。例如,可以按以下规律将电文变成密码:

将字母a变成字母E,a变成e,即变成其后的第4个字母,W变成a,X变成b,Y变成c,Z变成D。见图6.15。字母按上述规律转换,非字母字符不变。如“china!”转换为“Glmre!” 。
输入一行字符,要求输出其相应的密码。
程序如下:

#include <Stdio.h>
main()
{
char c;
while((c=getchar())!='\n')
{
if((c>='a' && c<='z') || (c>='a' && c<='Z'))
{ c=c+4;
if(c>'Z' && c<=

\n在C语言中的意思是“回车”
照着么说的,while((c=getchar())!='\n')
就是 当((从键盘读取一个值,并赋值给c)不等于回车)
……
说白了就是当你输入回车(就是恩一下“Enter”键)时,这一段代码就执行结束了。
例如:
while((c=getchar())!='\n')
{
printf("%d",c)
}
就是说当你敲入回车后,{}中的东西就不读了(当然回车之前的东西还是要读的)。
(摸摸鼻子)能明白么

也就是你一直往下输字符,不要按回车,一但按了回车,之后输入的字符就不再读入,也就是不再将回车之后输入的字符转换.