| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 550 人关注过本帖
标题:do-while 是如何控制指针+1 的呢?
只看楼主 加入收藏
rsice
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-8-24
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:7 
do-while 是如何控制指针+1 的呢?
以下这段代码是C语言编程精要12讲里面一段关于加密字符的代码,我试了一下,可以加密,但是有个问题一直没搞明白,就是do-while语句里,怎么控制程序读取下一个字符呢?比如我输入apple,第一次读取了a,while条件也符合循环的条件,那么第2次循环时怎么保证读取p而不是a呢?内部自动+1?求教!
#include <Stdio.h>
#include <stdlib.h>

int main(void)
{
    char c1;
    int d;
    do
    {
        scanf("%c",&c1);
        if(c1>='a' && c1<='z')
        {
            d=c1-'a';
            c1='z'-d;
        }
        printf("%c",c1);
    }while(c1!='\n');

    system("pause");
    return 0;
}
搜索更多相关主题的帖子: include apple C语言 如何 加密 
2014-08-27 23:56
apull
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:三体星系
等 级:版主
威 望:216
帖 子:1484
专家分:9058
注 册:2010-3-16
收藏
得分:4 
scanf("%c",&c1);
循环中每次读取一个字符。
2014-08-28 00:32
砖家的谎言
Rank: 12Rank: 12Rank: 12
等 级:禁止访问
威 望:30
帖 子:693
专家分:3898
注 册:2013-12-6
收藏
得分:4 
用每一种循环,用指针打印星星,打印出正三角,倒三角,菱形,通过这种方式来熟练循环的使用。

我不是砖家,要努力成为砖家。
2014-08-28 07:57
fogmaple
Rank: 4
来 自:江西省赣州市于都县
等 级:业余侠客
威 望:1
帖 子:119
专家分:233
注 册:2014-7-28
收藏
得分:4 
循环不断
2014-08-28 08:02
书生等待
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:8
帖 子:280
专家分:689
注 册:2013-2-22
收藏
得分:4 
没有指针加一,循环读入c1,新输入的值覆盖旧值
2014-08-28 09:28
rsice
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-8-24
收藏
得分:0 
回复 5 楼 书生等待
但问题是,我是一次性输入apple,然后回车,然后一次性显示加密后的字符,并不是我输入a的时候,程序显示加密后的字符,然后我输入p,程序显示加密后的字符~~~
2014-08-28 21:59
rsice
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2014-8-24
收藏
得分:0 
回复 2 楼 apull
我刚才调试了一下,确实是循环读入的,但问题就在于,为什么程序知道已经读过a了,要读取p了呢?或者说,在这个程序中,怎么知道是要读取的字符呢?

[ 本帖最后由 rsice 于 2014-8-28 22:45 编辑 ]
2014-08-28 22:00
huangdada
Rank: 1
等 级:新手上路
帖 子:3
专家分:4
注 册:2014-8-29
收藏
得分:4 
我推测的是这样的 我同意一楼说法 scanf("%c",&c1);每次只读取一个字符  楼主你输入的是apple 第一次scanf只读入a(还剩下pple) 判断并执行if语句 whlie判读完成后再执行scanf("%c",&c1); 读入p 以此类推................ 可以理解为这样 scanf的确是输一个读一个 但是用循环控制就可以先输入多个 再依次读取
#include <Stdio.h>
#include <stdlib.h>

int main(void)
{
    char c1;
    int d;
   
   scanf("%c",&c1);
   printf("%c",c1);
    system("pause");
    return 0;
}
2014-08-29 05:53
快速回复:do-while 是如何控制指针+1 的呢?
数据加载中...
 
   



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

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