| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 599 人关注过本帖
标题:新手 有一个问题不明白,希望各位指教
只看楼主 加入收藏
kanguhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-29
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:8 
新手 有一个问题不明白,希望各位指教
#include<stio.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=c-22;
     else c=c+4;
     }
   printf("%c",c);
   c=getchar();
   }
 printf("\n");
 return 0;
}


其中第五行的 while(c!='\n')  有一些不明白,这里为什么要说明不是换行符呢,其它的不可以么。

搜索更多相关主题的帖子: 希望 
2013-01-31 09:43
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:1 
一个结束循环的标志
2013-01-31 10:02
killerlzt
Rank: 2
等 级:论坛游民
帖 子:11
专家分:67
注 册:2012-4-27
收藏
得分:3 
判断循环结束的标志,如果输入换行符,就会退出循环;
当然,你也可以自己换成其他结束标志。
2013-01-31 10:38
lxsjzbd
Rank: 4
来 自:河北省
等 级:业余侠客
帖 子:97
专家分:258
注 册:2012-3-31
收藏
得分:4 
异或32,大写变小写,小写变大写
‘\n’是回车终止的意思
2013-01-31 10:46
大米稀粥客
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:82
专家分:155
注 册:2013-1-8
收藏
得分:1 
可以 用别的也可以
2013-01-31 10:54
千鸟
Rank: 2
来 自:重庆南岸
等 级:论坛游民
帖 子:11
专家分:34
注 册:2013-1-25
收藏
得分:8 
在这里,while(c!='\n')起的作用就是终止while循环,因为判断字符是从你输入的字符中一个一个判断的,而我们一般在输入的最后都是敲回车。而‘/n’本身就是一个字符。当程序判断到‘/n’这个字符的时候,因为c!='\n'是循环条件,而此时字符c=‘/n’,这个与循环条件相违背,故而循环结束。当然如果你一定要改变循环的结束条件也不是不可以,换用其他的字符代替也行,但是这样一来,就会给我们的输入带来一定的麻烦。。
此上解释不知道能不能帮到你

学c,就是兴趣加实践。
2013-01-31 10:55
我心依旧1314
Rank: 2
等 级:论坛游民
帖 子:8
专家分:19
注 册:2013-1-2
收藏
得分:3 
比方说你首先输入字符 A 后需按enter键,enter键对应的字符被保存到输入缓冲区,那么当你再次需要输入字符时,getchar()会接受enter键。你可以加一个fflush(stdin)清除缓冲区,就可以用其他字符代替‘\n'了!
2013-01-31 11:35
kanguhong
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2013-1-29
收藏
得分:0 
谢谢各位了,弄明白了
2013-01-31 12:43
ren613
Rank: 3Rank: 3
来 自:宣武
等 级:论坛游侠
帖 子:117
专家分:120
注 册:2012-11-20
收藏
得分:0 
程序里少了两个’

天道酬勤
2013-01-31 14:52
快速回复:新手 有一个问题不明白,希望各位指教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023700 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved