-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
输入一个英文句子,长度不超过200个字符。其中可包含的符号只有逗号","和句号"."。
输出句子中最长的一个单词。如果有多个这样的单词,输出最后出现的。
输入
- 多组数据,每行为一个句子,其中符号"."不代表句子结束,譬如人名中可含有".”。 输出
- 每行一个最长单词。这里单词的定义是仅由连续的字母组成的字符串。 样例输入
-
Good morning. Have a nice day.
样例输出
-
morning nice
问题链接:Bailian3179 最长单词
问题分析:这是一个把字符串切成单词的问题,关键在于找到一个好用的库函数。程序说明:函数strtok()的功能十分理想,用上就简单了。
AC的C语言程序如下:
/* Bailian3179 最长单词 */
#include <stdio.h>
#include <string.h>
#define N 200
char s[N + 1], max[N + 1];
int main(void)
{
char *p;
int maxlen, len;
while(gets(s) != NULL) {
maxlen = 0;
max[0] = '\0';
p = strtok(s, " ,.");
while(p) {
len = strlen(p);
if(len >= maxlen) {
maxlen = len;
strcpy(max, p);
}
p = strtok(NULL, " ,.");
}
printf("%s\n", max);
}
return 0;
}