找出一句话中最长的单词并打印
来源:百度知道 编辑:UC知道 时间:2024/07/02 01:12:29
用C语言编写一个函数,从一句英语语句中找出最长的单词,并打印该单词。比如“What are you doing?”,最长的单词是“doing”(问号不能连同doing一起)。最好能实现从标准输入端随意输入一句话。谢谢!
#include <stdio.h>
int ischar(char ch)
{
return ((ch >= 'A' && ch <= 'Z') || (ch >= 'a' && ch <= 'z')) ? 1 : 0;
}
int main(void)
{
char szsrc[256];
int maxlen[2] = {0, 0};
int cumax = 0;
char longword[2][256];
int i = 0;
gets(szsrc);
while (1)
{
if (ischar(szsrc[i]))
{
longword[cumax][maxlen[cumax]++] = szsrc[i];
}
else
{
longword[cumax][maxlen[cumax]] = '\0';
if (maxlen[cumax] > maxlen[1 - cumax])
cumax = 1 - cumax;
maxlen[cumax] = 0;
}
if (szsrc[i] == '\0')
break;
i++;
}
printf("the longest word: %s\n", longword[1 - cumax]);
}
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctyp