用c语言写本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
时间: 2024-10-29 10:20:29 浏览: 11
Blog:入坑前端,这是自己写本博客的地方,希望能给未来一个不一样的自己
在C语言中,你可以通过以下几个步骤编写一个程序来统计一行字符中单词的数量:
1. 创建一个函数,如 `count_words`,接收一个指向字符串的指针作为参数。
2. 初始化一个计数器 `word_count` 为0,用于存储单词数量。
3. 使用一个 `while` 循环遍历字符串,条件是还有剩余字符且当前字符不是空格(`!isspace()` 函数用于判断字符是否为空格)。
4. 当遇到空格时,检查从上一次非空格字符到当前位置是否有连续的字符构成一个单词。如果没有,则增加计数器。
5. 如果有单词,继续检查下一个字符,直到再次遇到空格或达到字符串末尾。
6. 循环结束后,因为最后一个单词可能没有遇到空格,所以也需要加1到计数器。
7. 返回 `word_count`。
下面是一个简单的示例实现:
```c
#include <stdio.h>
#include <ctype.h> // 包含 isspace 函数
int count_words(const char* str) {
int word_count = 0;
const char* current = str; // 指向字符串起始位置
while (*current) { // 只要遇到非空字符
if (!isspace(*current)) { // 如果不是空格
// 找到单词的开始
while (*current && !isspace(*current)) {
current++; // 移动到下一个字符
}
// 检查是否存在下一个单词
if (*current) {
current++; // 跳过空格,进入下一个单词
while (*current && isspace(*current)) {
current++; // 跳过空格内的所有空格
}
}
}
word_count++;
}
return word_count;
}
int main() {
char line[100];
fgets(line, sizeof(line), stdin); // 读取一行用户输入
line[strcspn(line, "\n")] = '\0'; // 删除行尾的换行符
int wordCount = count_words(line);
printf("The number of words in the line is: %d\n", wordCount);
return 0;
}
```
阅读全文