用C++编写一个函数计算字符串中的单词个数(假设每个单词之间至少有一个空白字符分隔开)
时间: 2024-04-29 19:26:23 浏览: 79
好的,您可以参考下面的 C 代码实现:
```
#include <stdio.h>
int count_words(char str[]) {
int count = 0;
int i = 0;
while (str[i] != '\0') {
// 跳过空格字符
while (str[i] == ' ' || str[i] == '\t' || str[i] == '\n') {
i++;
}
// 如果不是空格,说明是单词的开头
if (str[i] != '\0') {
count++;
}
// 继续扫描单词
while (str[i] != ' ' && str[i] != '\t' && str[i] != '\n' && str[i] != '\0') {
i++;
}
}
return count;
}
int main() {
char str[] = " hello world this is a test ";
printf("单词个数为: %d\n", count_words(str));
return 0;
}
```
以上代码中的 count_words 函数使用两个 while 循环来扫描字符串,第一个 while 循环用于跳过开头的空格字符(如果有的话),第二个 while 循环用于扫描单词。如果在第一个 while 循环内部没有跳过字符串末尾的空格字符,那么在第二个 while 循环内部就会发现这些空格字符并加入到单词的统计中去,因此可以正确地计算字符串中的单词个数。
阅读全文