本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。
时间: 2024-11-06 18:14:38 浏览: 36
用c语言实现 计算一个字符串中单词的个数
5星 · 资源好评率100%
要求您编写一个程序来计算给定字符串中单词的数量。这里所说的“单词”是由一串连续字符组成的,不包含空格,并且这些单词由零个或多个空格分隔。任务就是确定有多少这样的非空词组。
**示例输入:**
```
Hello World! This is a test.
```
**示例输出:**
```
5
```
**程序设计思路:**
1. 首先,读取输入的一行字符串。
2. 初始化一个计数器 `word_count` 用于存储单词数量。
3. 使用两个指针,`start` 和 `end`,分别表示当前单词的起始位置和结束位置。初始时,`start = end = 0`。
4. 循环遍历整个字符串:
- 如果遇到空格,检查从 `start` 到 `end` 的部分是否为空(即 `start == end`),如果是,则说明找到了一个完整的单词,增加 `word_count`。
- 如果遇到非空格字符,将 `end` 指向该字符的位置。
5. 当遍历到字符串末尾时,也需要检查最后一次的单词(不需要判断是否为空,因为之前已经处理过所有的空格了)。
6. 输出 `word_count`。
```python
def count_words(input_string):
word_count = 0
start = 0
for end in range(len(input_string)):
if input_string[end] != ' ': # 遇到非空格字符
end += 1
else: # 遇到空格
if end > start: # 如果不是第一个字符(防止空字符串也算作单词)
word_count += 1
start = end + 1 # 移动开始位置
# 处理末尾可能存在未检测的单词
if start < len(input_string):
word_count += 1
return word_count
# 示例
input_str = "Hello World! This is a test."
print(count_words(input_str)) # 输出:5
阅读全文