#include <stdio.h>
int main() {
char ch; // 存储临时字符
int count = 0; // 对每个单词进行计数
//第一个循环, 为了输出第一个合法的单词的字母的数量
while (true) {
scanf("%c", &ch);
if (ch == '.') { // 遇到点,说明这个句子中最多只有一个单词,这时要返回
if (count > 0) { // 如果有单词,输出字符数量
printf("%d", count);
}
return 0;
}
if (ch == ' ') {
if (count == 0) { // 目的是让程序在第一个循环里必须输出第一个合法单词,没有那就一直走
continue;
}
if (count > 0) { // 遇到了合法单词后面第一个空格,输出 并 跳出
printf("%d", count);
}
break;
} else { // 遇到的是字符
count++;
}
}
count = 0;
// 第二个循环,为了后续的单词的字符数量的输出
while (true) {
scanf("%c", &ch);
if (ch == ' ') {
if (count > 0) { // 判断一下,有没有未输出的合法单词
printf(" %d", count);
}
count = 0;
} else if (ch == '.') {
if (count > 0) { // 判断,有没有未输出的合法单词
printf(" %d", count);
}
break;
} else {
count++;
}
}
return 0;
}
以上代码注释,均由张博同学编写,条理清楚,分析得当