找出一句话中最长的单词并打印

来源:百度知道 编辑: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