作业帮 > 综合 > 作业

任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.

来源:学生作业帮 编辑:搜搜考试网作业帮 分类:综合作业 时间:2024/05/15 08:51:52
任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.输出:hamburger.
任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.
#include "stdio.h"
#include "string.h"
#define MAX_LENGTH 255
void main()
{
int start = 0; //标记当前起始位置
int end=0; //标记当前结束位置
int max_length = 0; //保存当前最长单词的长度
int result_start = 0; //保存最长的单词的起始位置
char p[MAX_LENGTH];
char subWord[MAX_LENGTH]; //用于保存结果
memset((void*)p,'\0',MAX_LENGTH); //重置内存,每个字节都预置'\0',因为'\0'是字符串的结束标记
memset((void*)subWord,'\0',MAX_LENGTH); //重置内存,每个字节都预置'\0',因为'\0'是字符串的结束标记
printf("请输入字符串:");
gets(p);
while(end != MAX_LENGTH)
{
if(p[end]==' ' || p[end]=='\0' || (end == MAX_LENGTH-1))
{

if((end-start+1)>max_length)
 {
max_length = end-start;
result_start = start;
 }
 if(p[end]=='\0' || (end==MAX_LENGTH-1))
 {
break;
 }

 start = end+1;
}
end++;
}
if(max_length == 0)
{
printf("木有木有!");
return;
}
memcpy((void*)subWord,(void*)(p+result_start),max_length);
printf("最大的单词是:%s,长度为%d",subWord,max_length);
while(1);
}