可以使用循环遍历字符数组的方式判断单词的数量,
代码示例:
#include <stdio.h>
int main() {
char str[100]; // 定义字符数组来存储输入的字符串
int wordCount = 0; // 用于统计单词数量的变量
printf("请输入一串字符:");
scanf("%[^\n]s", str); // 使用 scanf 函数获取输入的字符串,这里使用 %[^\n]s 来接收包含空格的字符串
getchar(); // 这里需要调用一次 getchar 函数来清除输入缓冲区中的换行符
int i = 0;
while(str[i] != '\0') { // 遍历字符串
if(str[i] != ' ' && (str[i + 1] == ' ' || str[i + 1] == '\0')) { // 判断是否为单个字符或者是单词的最后一个字符
wordCount++; // 单词数量加一
}
i++; // 移动到下一个字符
}
printf("单词的数量:%d\n", wordCount);
return 0;
}
这段代码中,我们首先定义了一个长度为 100 的字符数组 str
来存储输入的字符串。然后使用 scanf
函数来接收包含空格的字符串,注意在格式字符串中使用 %[^\n]s
,这样可以接收包含空格的字符串,遇到换行符 \n
就结束输入。接着使用 getchar()
调用一次来清除输入缓冲区中的换行符。
接下来,我们使用 while
循环遍历字符数组 str
。在循环中,我们判断当前字符是否为非空格字符,并且下一个字符是空格字符或者字符串的结束符 \0
。如果满足这两个条件,就说明遇到了一个单词的最后一个字符,此时单词数量加一。最后,输出统计到的单词数量。