| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 433 人关注过本帖
标题:求最大输入的字符串,高手进
取消只看楼主 加入收藏
qq8801103
Rank: 5Rank: 5
来 自:苏州中科大软件学院
等 级:职业侠客
威 望:1
帖 子:422
专家分:340
注 册:2009-10-8
结帖率:73.96%
收藏
已结贴  问题点数:20 回复次数:0 
求最大输入的字符串,高手进
这个程序是输出第一个最长的单词,编译能通过,结果也没问题,现在要输出全部最长的单词
程序代码:
#include <stdio.h>
#include <string.h>
char *fun(char *p);
int alphabet(char c);
char *a[10];
main()
{
    char str[100];
    char *s,*k;
    int c;
    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(*s != '\0')
        {
            k=s;
            while(alphabet(*s))
            {
                printf("%c",*s);
                s++;
            }
            c = strlen(k)-strlen(s);
            printf("  ");
            if(*s != '\0')
            {
                s++;
                s=fun(s);
            }
            if(strlen(s) < c)
                break;
        }
        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++;
    }
    if(count > max)
        point = p - count;
    return point;
}
这段代码运行结果正确但是本人不是很懂,请高手解释一下,具体点

搜索更多相关主题的帖子: 字符串 单词 
2011-08-30 11:11
快速回复:求最大输入的字符串,高手进
数据加载中...
 
   



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

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