任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.输出:hamburger.
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/16 03:21:24
任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.输出:hamburger.
任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.输出:hamburger.
任意输入一段英语句子,输出其中最长的单词比如:输入:I like eat hamburger and dumpling.输出:hamburger.
#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);
}