c语言 一道编程题

给定一个串s,编写函数找出其中最长的单词并返回。比如输入whatisyourname... 给定一个串s,编写函数找出其中最长的单词并返回。
比如输入 what is your name
展开
 我来答
石水2
2010-05-02 · TA获得超过2173个赞
知道小有建树答主
回答量:940
采纳率:100%
帮助的人:912万
展开全部
/*
此程序:
1.只能正确处理英文和空格
2.只能输出第一个最长的单词

3.可以根据具体要求完善
*/
#include<stdio.h>
int main()
{
int i,j,Maxlen=0,len,I;
char s[100],*str;
gets(s);
for(i=0;s[i]!='\0';i++)
{
while(s[i]==' ') i++;
for(j=i+1;s[j]!=' '&&s[j]!='\0';j++);
len=j-i;
if(Maxlen<len)
{
Maxlen=len;
I=i;
}
i=j-1;
}
for(i=I;i<I+Maxlen;i++)
printf("%c",*(s+i));
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友7c5b74bb3
2010-05-02 · TA获得超过5540个赞
知道大有可为答主
回答量:1034
采纳率:0%
帮助的人:1558万
展开全部
#include"stdio.h"
#include"string.h"
void main()
{int alphabetic(char);
int longest(char []);
int i;
char line[100];
printf("input one line:\n");
gets(line);
printf("the longest word is:");
for(i=longest(line);alphabetic(line[i];i++)
printf("%c",line[i]);
}

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

int longest(char string[])
{int len=0,i,length=0,flag=1,place=0,point;
for(i=0;i<=strlen(string);i++)
if(alphabetic(string[i]))
if(flag)
{point=i;
flag=0;
}
else len++;
else
{flag=1;
if(len>=length)
{length=len;
place=point;
len=0;
}
}
return(place);
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式