输入一行字符串,计算该行字符中包含多少个单词,单词之间用空格分隔开,要求使用:int WordCount(char *str)/*统计一行字符串中有多少单词,该函数返回单词的个数(int类型),str表示要统计的字符串*/
时间: 2024-09-11 16:16:07 浏览: 48
在C语言中,统计一行字符串中的单词数量可以通过编写一个函数`WordCount`来实现。单词通常由空白字符(如空格、制表符或换行符)分隔,因此可以通过遍历字符串并检查这些分隔符来确定单词的个数。以下是一个可能的实现方法:
```c
#include <stdio.h>
int WordCount(char *str) {
int count = 0; // 用于记录单词数量
int in_word = 0; // 用于标记是否在单词内部
// 遍历字符串直到字符串结束
while (*str) {
if (*str == ' ' || *str == '\t' || *str == '\n') {
// 如果当前字符是分隔符,并且之前是在单词中,则说明遇到了一个单词的结束
if (in_word) {
count++; // 单词计数加1
in_word = 0; // 标记为不在单词中
}
} else {
// 如果当前字符不是分隔符,则认为是在单词中
in_word = 1;
}
str++; // 移动到下一个字符
}
// 如果字符串最后一个字符不是分隔符,那么最后一个单词没有被计数
if (in_word) {
count++;
}
return count; // 返回单词的总数
}
// 主函数,用于测试
int main() {
char str[] = "Hello World, this is a test string.";
printf("The number of words in the string is: %d\n", WordCount(str));
return 0;
}
```
在这个例子中,我们使用了一个额外的变量`in_word`来标记是否正在单词内部。当遇到空白字符时,我们检查`in_word`的状态来决定是否增加单词计数。注意,在字符串末尾如果不是空白字符,我们需要额外检查是否在单词内部并增加单词计数。
阅读全文