题目
统计一个文本中的最长的单词,单词中可以有连词符。
分析
按顺序判断统计即可。
说明
还没抢到回家的票,ε=(´ο`*)))唉。
#include <stdio.h>
#include <string.h>
int is_alphabet(char c)
{
return c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z';
}
int main() {
char buf[10001], ans[101];
int max_length = 0;
while (~scanf("%s", buf) && strcmp(buf, "E-N-D")) {
int index = 0, count = 0, start = 0;
for (int i = 0; buf[i]; ++ i) {
if (is_alphabet(buf[i]) || buf[i] == '-') {
count ++;
} else {
if (max_length < count) {
max_length = count;
for (int j = start; j < i; ++ j) {
if (buf[j] >= 'A' && buf[j] <= 'Z') {
ans[j - start] = buf[j] - 'A' + 'a';
}else {
ans[j - start] = buf[j];
}
ans[j - start + 1] = 0;
}
}
count = 0;
start = i+1;
}
}
if (max_length < count) {
max_length = count;
for (int j = start; buf[j]; ++j) {
if (buf[j] >= 'A' && buf[j] <= 'Z') {
ans[j - start] = buf[j] - 'A' + 'a';
} else {
ans[j - start] = buf[j];
}
ans[j - start + 1] = 0;
}
}
}
printf("%s\n", ans);
return 0;
}