【题目描述】
输入 1 行句子(不多于200个单词,每个单词长度不超过100),只包含字母、空格和逗号。单词由至少一个连续的字母构成,空格和逗号都是单词间的间隔。
试输出第 1 个最长的单词和第 1 个最短单词。
【输入】
一行句子。
【输出】
第 1 行,第一个最长的单词。
第 2 行,第一个最短的单词。
【输入样例】
I am studying Programming language C in Peking University
【输出样例】
Programming
I
【源代码】
#include <iostream>
#include <cstring>
using namespace std
;
int main() {
char s
[10000];
int len
;
int sum
= 0, maxLen
= 0, minLen
= 9999;
int maxPosition
, minPosition
;
int i
;
gets(s
);
len
= strlen(s
);
s
[len
] = ' ';
for (int i
= 0; i
<= len
; i
++) {
if (s
[i
] != ' ' && s
[i
] != ',') sum
++;
else if (sum
> 0) {
if (sum
> maxLen
) {
maxLen
= sum
;
maxPosition
= i
- sum
;
}
if (sum
< minLen
) {
minLen
= sum
;
minPosition
= i
- sum
;
}
sum
= 0;
}
}
for (i
= maxPosition
; i
<= maxPosition
+ maxLen
- 1; i
++)
cout
<< s
[i
];
cout
<< endl
;
for (i
= minPosition
; i
<= minPosition
+ minLen
- 1; i
++)
cout
<< s
[i
];
return 0;
}