总时间限制: 1000ms 内存限制: 65536kB
描述
一个以'.'结尾的简单英文句子,单词之间用空格分隔,没有缩写形式和其它特殊形式,求句子中的最长单词。
输入
一个以'.'结尾的简单英文句子(长度不超过500),单词之间用空格分隔,没有缩写形式和其它特殊形式。
输出
该句子中最长的单词。如果多于一个,则输出第一个
样例输入
I am a student of Peking University.
样例输出
University
答案
#include <stdio.h>
#include <string.h>
typedef struct {
char word[600];
int len;
} word;
int main() {
static word word_, wordMax;
static char str[600], *p = str, *q;
gets(str);
for(; *p != 0; p++) {
if(*p != ' ' && *p != '.') {
word_.word[word_.len++] = *p;
} else {
if(wordMax.len < word_.len) {
wordMax.len = word_.len;
strcpy(wordMax.word, word_.word);
}
for(q = word_.word; *q != 0; q++) {
*q = 0;
}
word_.len = 0;
}
}
puts(wordMax.word);
}