| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 979 人关注过本帖
标题:输出全部最长单词!高手帮帮忙!多谢啦!
取消只看楼主 加入收藏
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
结帖率:95.65%
收藏
已结贴  问题点数:20 回复次数:6 
输出全部最长单词!高手帮帮忙!多谢啦!
这个程序是输出第一个最长的单词,编译能通过,结果也没问题,现在要输出全部最长的单词,需要用到指针数组和指针的指针,这个对我这个初学者来说实在是有点难了,大神这个程序的基础上帮忙修改下!多谢啦!
#include
char *fun(char *p);
int alphabet(char c);
main()
{


    char str[100];
    char *s;
    printf("input the string:\n");
    gets(str);
    s=fun(str);
    if(s==NULL)
        printf("the string is null!");
    else
    {
        printf("the longest word is :\n");
        while(alphabet(*s))
        {
        printf("%c",*s);
            s++;
        }
        printf("\n");
    }
}

int alphabet(char c)

{
    if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
        return 1;
    else
        return 0;
}

char *fun(char *p)
{
    int max=0;
    int count=0;
    int flag=1;
    char *point=NULL;
    while(*p!='\0')
    {
        if(alphabet(*p))
        {
            count++;
            flag=0;
        }
        else
            flag=1;
        if(flag)
        {
            if(count>max)
            {
                max=count;
                point=p-max;
                count=0;
            }
            else
                count=0;
        }
        p++;
    }
    return point;
}
搜索更多相关主题的帖子: 单词 null 
2011-08-29 21:42
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
回复 2楼 呵呵呵。。
可以一样长嘛!qqqq wwww ee fgt
这样就输出 qqqq wwww
2011-08-29 22:59
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
回复 3楼 luyi_footman
  多谢你给的意见。
  最长的单词出现在最后面也是可以输出的,因为一句话是以标点结束的。这样就可以输出了。
  至于为什么用数组指针是这样的,当有几个单词都是最长的时候,就必须把地址都存进数组了,这样逼于无奈就想到指针的指针了,不用的话,我真不知道沿着我现在的思路怎么输出多个等长的单词。
2011-08-30 09:31
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
回复 7楼 obstratiker
多谢你给的代码,虽然没用到指针数组,但是上实现了等长输出。
这个也有个小bug,要是一句话以标点结尾,程序就会出错,提示应用程序出错。
2011-08-30 09:40
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
回复 7楼 obstratiker
这个逻辑上程序也不对,如果是字符串是wqqq qqq qq q.
输出的是 wqqq qqq qq q 少了一个判断,但是可以沿着这个思路改下。
2011-08-30 10:36
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
回复 10楼 ybjkl
怎么按你的思路改着改着有递归的味道了。还是希望哪位大神帮我用指针数组解决,一是程序写到用指针数组是很自然的事,再就是对指针数组不是很了解,想看下眼!多谢啦!
2011-08-30 10:47
ybjkl
Rank: 2
等 级:论坛游民
帖 子:86
专家分:85
注 册:2011-6-21
收藏
得分:0 
  高手都在忙啥呢?真的期待在原有思路和框架上看到指针数组的牛B运用,也好让我这菜鸟开开眼啊!
  问题的关键是在一个字符串中有并列最长单词的时候都能输出,为简单起见,字符串以.结束,也算是有标点吧!省去最长单词在最后面的情况。在线等。高手拜托啦!
2011-08-30 15:31
快速回复:输出全部最长单词!高手帮帮忙!多谢啦!
数据加载中...
 
   



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

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