A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© aofex 中级黑马   /  2015-6-29 14:30  /  1023 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int main ()
{
    int a = 0 ,b = 0, c = 0;
    char name [] = "hello hei ma xun lian ying";
    int i ;
    for ( i=0; i<strlen(name); i++)
    {
        while (name[i] != ' ' && name[i])
        {
            a++;
            i++;
        }
        printf("%d,%d,\n",a,i);
    }

高手们   为什么只打印5回啊,个人感觉应该打印26回啊???

4 个回复

倒序浏览
因为你写了while循环,满足条件i会一直++;while 中的i与for中的i是一样的,当i为 5 9 12 16 21 26时,跳出while并打印
回复 使用道具 举报
mazhichao 发表于 2015-6-29 19:02
因为你写了while循环,满足条件i会一直++;while 中的i与for中的i是一样的,当i为 5 9 12 16 21 26时,跳 ...

唉  我晕  我自己看的基础视频看了有一个月了 感觉printf是写到for里的 ,就是循环一会  就打印一回   哥儿们 方便留个电话吗  或者是qq 请教一下  实在是弄个不懂
回复 使用道具 举报
while (name[i] != ' ' && name[i])   这句话的意思是name[]!=空格,等于了就跳出循环,然后你的数组"hello hei ma xun lian ying" hello后边是不是就是空格,所以就执行了5次。
回复 使用道具 举报
Thomas-王 发表于 2015-6-29 20:51
while (name != ' ' && name)   这句话的意思是name[]!=空格,等于了就跳出循环,然后你的数组"hello hei  ...

好的  感谢
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马