| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1844 人关注过本帖
标题:i++ 的逻辑不知道哪里误解了
取消只看楼主 加入收藏
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
结帖率:72.22%
收藏
 问题点数:0 回复次数:2 
i++ 的逻辑不知道哪里误解了
程序代码:
    char string[] = " Beware the Jabberwock, \nmy son!";
    int i = 0;
    while( string[i] != '\0')
        if(string[i] != '\n')
        putchar(string[i++]);

书上的例子,讲的是屏幕非格式化输出
在用这段代码,讲解putchar()函数

书中的输出为: Beware the Jabberwock, my son!

但实测试出为:Beware the Jabberwock,

个人理解:当数组中字符为“\n”时,if不执行,所以没有i++,返回到while(),

请问:1,返回之后程序结束了么,这时 \n != '0' 为真  >  执行if,为假 > 返回while() > ...
2,要如何像书中那样输出?应该递增i才对吧, 在if后直接写else i++; 输出了乱码

预谢!  


[此贴子已经被作者于2019-5-5 16:04编辑过]

搜索更多相关主题的帖子: i++ string the while 输出 
2019-05-05 15:40
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
收藏
得分:0 
回复 2楼 word123
这个是我打错了,但是除此之外,要如何达到书中输出效果呢?
Beware the Jabberwock, my son!
直接写i++似乎不行啊,还要用个else if 判断么?

我试了下这个,输出正常,请问逻辑正确么?
else if(string[i-1] != '\0')
    i++;


[此贴子已经被作者于2019-5-5 16:10编辑过]

2019-05-05 16:04
bxe
Rank: 1
等 级:新手上路
帖 子:57
专家分:7
注 册:2019-3-21
收藏
得分:0 
回复 5楼 word123
谢谢,这下算是搞明白了!
2019-05-05 16:45
快速回复:i++ 的逻辑不知道哪里误解了
数据加载中...
 
   



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

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