日期:2023-11-5
一:计算单词长度的关键:
单词,属于字符串,在不导入数组知识,利用字符数组来求解的情况下,对于不限位数的单词,利用循环语句进行输入和输出是不可或缺的一环,而利用循环语句代替数组赋值,也就成为了实现分批处理字母的主要部分。
二:实现构想:
(1)利用while ((input = getchar()) != '.'设置截断点,满足输入需求。
(2)根据分支语句的特点,通过导入标记变量,实现判断条件的控制,从而影响输出。若if假,则执行else if 。 所以如果输入的是空格,则执行else if语句。初始对flag进行一次赋值,则前面有单词,flag必为1
(3)如果前面有单词,则flag必为1 ,则输出一个空格 .
#include<stdio.h>
int main()
{
char input, blank = ' ';
int num_letter = 0;
int flag = 0;
while ((input = getchar()) != '.') {
if (input != ' ') {
num_letter++;
}
else if (num_letter != 0) {
if (flag != 0) {
putchar(blank);
}
flag = 1;
printf("%d", num_letter);
num_letter = 0;
}
else {//
continue;
}
}
if (flag == 1 && num_letter != 0) {//在最后一个单词时,读到空格就直接跳到continue,然后读到‘.’就退出循环了
putchar(blank);//保证前面一定有单词 输出一个空格
}
if (num_letter) {
printf("%d", num_letter);//输出在循环中计算的最后一个单词个数
}
return 0;
}