| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 4312 人关注过本帖, 1 人收藏
标题:字符串中的最长单词
取消只看楼主 加入收藏
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
结帖率:100%
收藏(1)
 问题点数:0 回复次数:1 
字符串中的最长单词
大家帮忙看一下。目标是找出字符串中最长的单词,看看我的程序到底问题在哪儿
#include"stdio.h"
int d,c,n;
void main()
{
    char a[1000];
    char longest(char a[]);
    printf("请用英文输入一句话\n");
    gets(a);
    longest(a);
    for(;c<d;c++)
        printf("%c",a[c]);
}
char longest(char a[])
{
    int i=0,max=0;
    while(a[i]!='\0')
    {  n=0;
       while(a[i]!=' ')
       {   n++;
           i++;
       }
        if(n>max){max=n;d=i;c=d-n;}//c为最长单词的起始字母位置,d为结束位置。
        i++;
    }
}
搜索更多相关主题的帖子: 字符 单词 
2008-11-28 23:56
songsfly
Rank: 1
来 自:厦门大学
等 级:新手上路
帖 子:44
专家分:0
注 册:2008-11-25
收藏
得分:0 
程序代码:
#include"stdio.h"
int d,c,n;
void main()
{
    char a[1000];int i;
    char longest(char a[]);
    printf("请用英文输入一句话\n");
    gets(a);
    longest(a);
    printf("最长的单词是\n");
    for(i=c;i<d;i++)
        printf("%c",a[i]);
    printf("\n");
}
char longest(char a[])
{
    int i=0,max=0;
    while(a[i]!='\0')
    {  n=0;
    while((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))
    {   n++;
        i++;
    }
    if(n>max){max=n;d=i;c=d-n;}//c为最长单词的起始字母位置,d为结束位置。
    i++;
    }
}

我只是修改了longest函数中第二个while的条件,问题就解决了,我不明白,对于一句字符串中((a[i]>='a'&&a[i]<='z')||(a[i]>='A'&&a[i]<='Z'))这个条件和a[i]!=' '这个条件有什么不同,然后对运行结果造成了那么大的影响。至于2楼所说的我都程序错误很多,我觉得自己的算法应该没问题。有错误的地方还劳烦指出哦……
2008-11-29 09:29
快速回复:字符串中的最长单词
数据加载中...
 
   



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

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