求句子中最长的单词
1、求每个单词长度;
2、选出最大长度;
3、每个单词的长度与最大长度比较,相等则为最长单词。
#include <stdio.h>
#include <string.h>
//求单词的最大长度
int findLen (char *str)
{
char *p1 = str;
char *p2 = str;
int len = 0;
while (*p2)
{
if (*p2 == ' ')
{
*p2 = '\0'; //将空格置为'\0',选出一个单词
len = (len > strlen(p1)) ? len : strlen(p1);
*p2 = ' ';
p1 = p2 + 1; //指向下一个单词
}
p2++;
}
len = (len >( strlen(p1) - 1)) ? len : (strlen(p1) - 1);
return len; //返回最大长度
}
//找长度最大的单词
void findWord (char *str, int len)
{
char *p1 = str;
char *p2 = str;
while (*p2)
{
if (*p2 == ' ')
{
*p2 = '\0';
if (len == strlen (p1)) //若单词长度等于最大长度,则为最长单词
printf ("Longest Word : %s\n",p1);
*p2 = ' ';
p1 = p2 + 1;
}
p2++;
}
if (len == strlen (p1) - 1) //最后后一个单词单独判断
printf ("Longest Word : %s\n",p1);
}
int main ()
{
printf ("Function : Lingest Word of String.\n");
char str[100];
fgets (str, sizeof(str)/sizeof(char), stdin);
findWord (str, findLen(str));
return 0;
}