你的程序要读入一行文本,其中以空格分隔为若干个单词,以.结束。你要输出每个单词的长度。这里的单词与语言无关,可以包括各种符号,比如it's算一个单词,长度为4。注意,行中可能出现连续的空格;最后的.不计算在内。 输入格式: 输入在一行中给出一行文本,以.结束 提示:用scanf("%c",...);来读入一个字符,直到读到.为止。 输出格式: 在一行中输出这行文本对应的单词的长度,每个长度之间以空格隔开,行末没有最后的空格。
时间: 2023-05-31 14:19:19 浏览: 136
输出输入文本的每个单词长度
5星 · 资源好评率100%
### 回答1:
程序需要读入一行文本,其中单词以空格分隔,以.结束。需要输出每个单词的长度,包括各种符号。注意,行中可能出现连续的空格,最后的.不计算在内。
输入格式:一行文本,以.结束。
输出格式:每个单词的长度,以空格分隔,行末没有最后的空格。
提示:可以使用scanf("%c",...)来读入一个字符,直到读到.为止。
### 回答2:
题目描述
本题要求读入一行文本,其中以空格分隔为若干个单词,以.结束。需要输出每个单词的长度。输入格式为字符串,输出格式为输出每个单词的长度,中间以空格隔开,末尾无空格。
算法1
(扫描) $O(n)$
先用scanf("%c",…);读入一个字符,直到读到.为止。我们可以用一个变量len表示当前单词的长度,以及一个变量flag表示当前是否在单词中。对于每个读入的字符,判断其是否为空格或者.,如果是,则将flag设为0,表示当前不在单词中;如果不是,则将flag设为1,表示当前在单词中,然后将len加1。遇到.停止读入,同时不要计算在内。最后输出保存单词长度的数组。
时间复杂度
一次扫描字符串,时间复杂度为$O(n)$。
参考文献
无
C++ 代码
下面是C++的AC代码。
### 回答3:
解题思路:
本题要求读入一行文本,将其中的单词按空格分隔,并输出每个单词的长度。
首先,我们可以利用 getchar()函数读入文本并判断是否遇到了句点,遇到即退出循环。然后用一个字符数组接收读入的文本,再利用 strtok()函数将字符串按照空格分隔为若干个单词。
遍历每个单词,计算其长度,将长度输出即可。
注意,行中可能出现连续的空格,所以需要在按空格分隔之前先将多余的空格去除。
参考代码:
阅读全文