| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 719 人关注过本帖
标题:总结(写一个函数 ,输入一行字符,输出其中最长的单词及其长度)
只看楼主 加入收藏
JACKITE
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-11-8
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:5 
总结(写一个函数 ,输入一行字符,输出其中最长的单词及其长度)
#include <stdio.h>
#include<ctype.h>
static int c=0,d=0;
void add(char b[]);      //此函数用来累加单词的个数
void bbb(int,int);       //此函数用得到最长单词(通过比较),以及输出所有最             长单词
char a[50];
int main()
{
   gets(a);
   add(a);
   return 0;
}

void add(char b[])
{
    int m = 0;
    for(int i=0;b[i]!='\0';i++)
    {if(isalpha(b[i]))
    {    m++;
        if(b[i+1]=='\0')
         bbb(i,m);}     
   

else
{
bbb(i,m);
m = 0;
}

}
}

void bbb (int k,int l)
{

    if(d<l)
    {
        d=l;
c=k;
    }                                                //此段以上是用来找出输入字符中最大单词的长度d;此段以下,是用来输出单词长度满足d的所有单词
    if(a[k+1]=='\0')                                                            
    {int h=0,e=0;
        for(;a[h]!='\0';h++)
        {for(;isalpha(a[h]);h++)
        {e++;}
        if(e==d)  
        {printf("最长的单词是:");
        for(int j=h-e;j<=h-1;j++)
printf("%c",a[j]);
         
        printf("  最长单词的长度是%d",d);         
        printf("\n");}e=0;
if(a[h]=='\0')
h--;  }}}
 
这是按自己初始思维写的,比较基础,也比较繁琐,


个人觉得ouyongshit 写的
#include<stdio.h>
#include<ctype.h>
#include<string.h>
int main()
{
    char ch,oldch=' ',str[80],max[80];
    int len,maxlen=0;
    while(oldch!='\n'){
        len=0;
        for(ch=getchar();isalpha(ch);ch=getchar())
            str[len]=ch,len++;
        str[len]=0;
        oldch=ch;
        if(len>maxlen){
            maxlen=len;
            strcpy(max,str);
        }
    }
    puts(max);
    printf("maxlen=%d\n",maxlen);
    return 0;
}
 
比较简短,精悍。再加上我的“此段以下的程序”那样的方法,就算做出来了,
由于本人水平有限,“此段一下的程序“  还不够完美,”此段以上的程序“也不咋的,还请高手多多包涵,大家共同进步!
搜索更多相关主题的帖子: include return 单词 
2014-12-26 10:32
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
收藏
得分:7 
楼主怎么没拿出一个完整版的来?

Only the Code Tells the Truth             K.I.S.S
2014-12-26 10:57
JACKITE
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-11-8
收藏
得分:0 
  那是留给大家去思考的,那只是我的一个想法而已,所以没有去做。
2014-12-26 15:48
JACKITE
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2014-11-8
收藏
得分:0 
额 我又发现一个问题,如果输入字符全部加起来,大约超过52个,回车后只会出现
 press any key to continue ,而楼上写过的那个程序,则不会出现这种情况,
请问这又是什么原因呢?
2014-12-26 16:20
SHEEP三三
Rank: 1
等 级:新手上路
帖 子:14
专家分:7
注 册:2014-12-26
收藏
得分:7 
看不懂
2014-12-26 16:21
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:7 

授人以渔,不授人以鱼。
2014-12-26 20:52
快速回复:总结(写一个函数 ,输入一行字符,输出其中最长的单词及其长度)
数据加载中...
 
   



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

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