单词长度(这题有很多版本,看看适不适合你。)
Description
编写程序,输入一行字符,统计每个单词的长度。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
Input
输入给出一行字符。
Output
在一行中输出每个单词的长度。各单词长度之间用1个空格隔开。
如果单词数为0,则输出0。
输入样例 1
How are you?
输出样例 1
3 3 4
以下是编程部分
说明:
这个题目要考虑各种可能的输入方式,我尽量说清楚。
1.先说整体框架,用到了scanf函数的缓存区存储数据的特点并使用while循环连续读入字符数据并对其进行处理。
2.count用于计数单词长度。notFirst用于控制输出时结果之间的空格。(这题目非要卡空格,有点莫名其妙。)
3.第四行定义temp=' ' 的作用是与第七行的if语句一起跳过连续的空格使其不进入计数(包括开头有空格形如" hi!"这种输入)。
4.judge可以看到是与21-23行代码一起控制特殊结尾的输出的。judge对应的是在输入时连续输入一段空格时输出结果0。而21-23行用于形如"how are you?\n"这种句子"you?"这种末尾部分的计数和输出。(注:这句里的\n是系统行末自动加的,是隐藏的,这里我把它暴露出来,请自行与第六行相理解。)
5.第六行whlie里的条件如果看不懂请chatgpt一下吧 ❛˓◞˂̵✧ scanf函数是有int类型的返回值的。
6.第9-10行c==' '与count--使读取遇到空格时形成停留处并进行数据的处理和输出。(即代表一个单词结束了。)
感谢阅读_(´_`」 ∠)_