本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输出单词个数。 用c程
时间: 2024-11-06 13:14:40 浏览: 27
为了编写一个C语言程序来统计一行字符中的单词个数,你可以按照以下步骤操作:
1. **定义函数**:
首先,创建一个名为`count_words`的函数,它接受一个指向字符串的指针作为参数,并返回单词的数量。
```c
#include <stdio.h>
#include <string.h>
int count_words(char* str) {
int word_count = 0;
int i = 0, j;
// 如果字符串为空,直接返回0
if (str == NULL || *str == '\0') {
return 0;
}
while (str[i] != '\0') { // 遍历字符串直到遇到'\0'
// 如果当前字符不是空格,开始一个新的单词计数
if (str[i] != ' ') {
j = i; // 更新起始位置
} else { // 当前字符是空格
if (i > j) { // 如果找到了一个完整的单词(非空),增加计数
word_count++;
}
j = i + 1; // 空格之后跳过空格
}
i++; // 移动到下一个字符
}
// 检查最后一个单词是否以空格结尾
if (i > j && str[j] != ' ') {
word_count++;
}
return word_count;
}
```
2. **主函数示例**:
在`main`函数中读取一行输入并调用上面定义的函数。
```c
int main() {
char input[1000]; // 假设足够大来存储输入
fgets(input, sizeof(input), stdin); // 从标准输入读取一行
// 删除fgets末尾的换行符
if (input[strlen(input) - 1] == '\n') {
input[strlen(input) - 1] = '\0';
}
int word_count = count_words(input);
printf("单词个数: %d\n", word_count);
return 0;
}
```
3. **运行程序**:
编译并运行这个程序,然后将需要统计单词的文本粘贴到命令行或通过文件输入,程序会输出该行中单词的个数。
阅读全文