黑马程序员技术交流社区

标题: 大家帮忙看一下哪里出错了! [打印本页]

作者: 萧雨流风    时间: 2014-10-9 08:31
标题: 大家帮忙看一下哪里出错了!
在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单词

为什么使用 if(*p == ' ') 只能输出第一个单词,如果换成if(*p == '-')就可以输出最大的单词,求大神解答!!!

#include<stdio.h>

int main()
{
    // 定义字符串变量
    char string[180],*p,*p2,*p3;
    int i=0,max=0;
   
    // 提示输入字符串,并接收
    printf("请输入一段字符串:\n");
    scanf("%s", string);
    p = string;
   
    // 遍历字符串
    while(*p!='\0')
    {
        // 以空格作为分隔点,并找出最大的单词
        if(*p == ' ')
        {
            if(max<i)
            {
                max=i;
                i=0;
                p2=p-max;
                p3=p2;
            }else
                i=0;
        }

            i++;
            p++;

    }
   
    // 判断最后一个单词的长度
    if(max<i)
    {
        max=i;
        p2=p-max;
        p3=p2;
    }
   
    // 打出最大的单词
    printf("字符串中最长的单词是:");
    while (p2<p3+max) {

        if (*p2=='-') {
            p2++;
            continue;
        }
        printf("%c", *p2);
        p2++;
    }
    printf("\n");
}



作者: 萧雨流风    时间: 2014-10-9 10:33
没人会吗

作者: Lizzie    时间: 2014-10-9 14:27
你写成  \32试试?
作者: 萧雨流风    时间: 2014-10-9 19:46
Lizzie 发表于 2014-10-9 14:27
你写成  \32试试?

还是不可以




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2