用c语言写本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。
时间: 2024-10-29 22:20:29 浏览: 36
py代码-已知参数origin和userInput是两个字符串,并且origin的长度大于userInput的长度。代码功能是统计并返回字符串origin和userInput中对应位置上相同字符的数量。
在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;
}
```
阅读全文