| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1596 人关注过本帖
标题:求助 为什么结果不是(hello)
只看楼主 加入收藏
dkfason
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-9-18
结帖率:0
收藏
已结贴  问题点数:20 回复次数:10 
求助 为什么结果不是(hello)
#include<stdio.h>
int main()
{
    char s[100] = "hello world";
    int i=0;
    while (s[i])
    {
        if (s[i] == ' ')
        {
            s[i] = 0;
            break;
        }
        
    }
    printf("(%s)\n", s);
    getchar();
    return 0;
}
搜索更多相关主题的帖子: return hello world 
2016-08-16 20:42
晓益
Rank: 4
来 自:江苏扬州
等 级:业余侠客
威 望:2
帖 子:85
专家分:220
注 册:2016-7-9
收藏
得分:10 
回复 楼主 dkfason
while循环无停止条件。

[此贴子已经被作者于2016-8-16 20:50编辑过]


千里之行,始于足下。
思考问题伤细胞,得分不容易。解决完问题请尽快结贴
2016-08-16 20:48
dkfason
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-9-18
收藏
得分:0 
回复 2楼 晓益
不是有s[i]=0吗 不是就不执行while()了吗
2016-08-16 20:50
晓益
Rank: 4
来 自:江苏扬州
等 级:业余侠客
威 望:2
帖 子:85
专家分:220
注 册:2016-7-9
收藏
得分:0 
回复 3楼 dkfason
你这里变量i永远等于0,没有递增,所以相当于while(s[0])

千里之行,始于足下。
思考问题伤细胞,得分不容易。解决完问题请尽快结贴
2016-08-16 21:16
dkfason
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-9-18
收藏
得分:0 
回复 3楼 dkfason
不是s[5]=0之后就退出if()循环,之后while(s[5]=0)就不再执行whlie() ,不是就是该打印(hello)了吗
2016-08-16 21:32
晓益
Rank: 4
来 自:江苏扬州
等 级:业余侠客
威 望:2
帖 子:85
专家分:220
注 册:2016-7-9
收藏
得分:0 
回复 5楼 dkfason
程序代码:
#include<stdio.h>
int main()
{
    char s[100] = "hello world";
    int i=0;
    while (s[i])
    {
        if (s[i] == ' ')
        {
            s[i] = 0;
            break;
        }
        i++;  //你这里i不递增 只会是一个无限循环
    }
    printf("(%s)\n", s);
    getchar();
    return 0;
}

千里之行,始于足下。
思考问题伤细胞,得分不容易。解决完问题请尽快结贴
2016-08-16 22:02
向洪林
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆市奉节县
等 级:版主
威 望:9
帖 子:118
专家分:405
注 册:2015-3-10
收藏
得分:10 
s[5]是一个‘’的,并不是s[5]=0;上面的晓益已经给你说了i的值没有递增,while()里面的值一直为0;
#include<stdio.h>
int main()
{
    char s[100] = "hello world";
    int i=0,j;
    while (s[i])
    {
        if (s[i] == ' ')
        {
            s[i] = 0;
            break;
        }
        i++;   
    }
    for(j=0;j<i;j++)
    printf("(%c)\n", s[j]);
    getchar();
    return 0;
}

新手上路,望大家多多照顾,谢谢!
2016-08-16 22:10
dkfason
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-9-18
收藏
得分:0 
回复 6楼 晓益
为什么不递增 大神
2016-08-16 22:23
向洪林
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:重庆市奉节县
等 级:版主
威 望:9
帖 子:118
专家分:405
注 册:2015-3-10
收藏
得分:0 
回复 8楼 dkfason
你是不是想只输出hello??
#include<stdio.h>
int main()
{
    char s[100] = "hello world";
    int i,n;
    for(i=0;i<100;i++)
    {
        if(s[i]=='')
        {
            n=i;
            break;
        }
    }
    for(n=0;n<i;n++)
    printf("(%s)", s[n]);
    printf("\n");
    getchar();
    return 0;
}

[此贴子已经被作者于2016-8-16 22:34编辑过]


新手上路,望大家多多照顾,谢谢!
2016-08-16 22:27
dkfason
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2015-9-18
收藏
得分:0 
回复 9楼 向洪林
刚才懵了谢谢
2016-08-16 22:36
快速回复:求助 为什么结果不是(hello)
数据加载中...
 
   



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

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