| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1117 人关注过本帖
标题:一个译密码的问题
只看楼主 加入收藏
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
 问题点数:0 回复次数:13 
一个译密码的问题

潭浩强那本C语言中有一个例题;译密码:既将字母变成其后第四个字母,W变成A,X变成B,Y变成C,Z变成D...非字母字符不变.如China! 变成 Glmre!
程序如下:
#include <stdio.h>
void main()
{
char c;
while ((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
}

运行结果如下:
input : China!
output: Glmre!

我的问题:为什么不是输入一个字符就输出一个密码,而是全部输完后才一次性处理?

搜索更多相关主题的帖子: 密码 
2006-11-01 11:15
jqbbccn
Rank: 1
等 级:新手上路
帖 子:73
专家分:0
注 册:2006-10-17
收藏
得分:0 
因为你判断到'\0'啊。。。。

2006-11-02 08:27
lyf320
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-2
收藏
得分:0 
#include <stdio.h>
void main()
{
char c;
while ((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
}
那是因为最后一个printf不包含在while循环中!
2006-11-02 21:41
C语言学习者
Rank: 4
等 级:贵宾
威 望:13
帖 子:1278
专家分:0
注 册:2006-9-26
收藏
得分:0 
while真正原理不很懂。本人想知道while是由那些汇编语句组成,那位高人能提出见解啊。

[此贴子已经被作者于2006-11-2 21:58:53编辑过]



谁有强殖装甲第二部,可以Q我460054868
2006-11-02 21:56
song4
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:38
帖 子:1533
专家分:4
注 册:2006-3-25
收藏
得分:0 
你调试看看不知道了/

嵌入式 ARM 单片机 驱动 RT操作系统 J2ME LINUX  Symbian C C++ 数据结构 JAVA Oracle 设计模式 软件工程 JSP
2006-11-03 10:39
走刀口→超
Rank: 6Rank: 6
等 级:贵宾
威 望:20
帖 子:5018
专家分:0
注 册:2006-3-14
收藏
得分:0 
-。-这个是LZ自己认为的吧。其实在内存中就是输入1个处理1个的!

人在江湖【走】,怎能不挨【刀】;为了能活【口】,唯有把己【超】!come on...
2006-11-03 10:44
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
以下是引用lyf320在2006-11-2 21:41:47的发言:
#include <stdio.h>
void main()
{
char c;
while ((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
}
那是因为最后一个printf不包含在while循环中!

但是第一个PRINTF是在循环内的吧,既然如此,那么就应该循环一次就输出一次吧,即输入一个字符就输出一个密码

2006-11-03 14:24
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
以下是引用走刀口→超在2006-11-3 10:44:00的发言:
-。-这个是LZ自己认为的吧。其实在内存中就是输入1个处理1个的!

我知道这在内存中是一一处理的,但是为什么PRINTF却不是立即反映呢?难道说PRINTF的语句是先在后台运行,然后再一起反应到显示上来的?





2006-11-03 14:27
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
继续顶,还是不明白
2006-11-04 12:08
cyyu_ryh
Rank: 8Rank: 8
等 级:贵宾
威 望:45
帖 子:1899
专家分:176
注 册:2006-10-21
收藏
得分:0 
既然没有规定输入的个数那么就应该可以输入一个字母就输出他相应的字符啊.
你还是试试可那再调试.

有事无事都密我. MSN: cyyu_ryh@hotmail.co.jp E-mail: cyyu_ryh@
2006-11-04 17:51
快速回复:一个译密码的问题
数据加载中...
 
   



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

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