事情缘由,帮朋友写一题,然后发现自己水平真的不够
#include <stdio.h>
#include <string.h>
char s[100];//输入文本。
char word[100][100];
int len;//计算字母长度。
int r, h, maxlen;
int local;
//统计一个文本的单词个数并输出最长单词长度和位置,每个单词之间可有多个空格或其它符号
int main()
{
char s[100];//输入文本。
char word[100][100];
int len;//计算字母长度。
int r = 0, h = 0, maxlen = 0;
gets(s);
len = strlen(s);
for (int i = 0; i < len; i++)
{
if (s[i] != ' ' && s[i] != '.' && s[i] != ',' && s[i] != '!' && s[i] != '?')
{
//当遇到字母的时候。
word[r][h++] = s[i];//存进二维数组,通过分行,每行一个单词
}
else
{
word[r][h] = '\0';//当那个单词结束后。
r++;//当那个单词结束后,换行。
h = 0;//从头开始输入单词。
while (s[i + 1] == ' ' || s[i + 1] == '.' || s[i + 1] == ',' || s[i + 1] == '!' || s[i + 1] == '?')
i++;//遇到标点符号的时候,继续走。
}
}
for (int i = 0; i < r + 1; i++)
{
if (strlen(word[i]) > maxlen)
{
maxlen = strlen(word[i]);
local = i;//记录最长的那个。
}
}
printf("单词个数:%d,最长的词语:%s", r + 1, word[local]);
return 0;
}