用c++写一个函数计算字符串中的单词数(假设每个单词之间有一个空白字符进行分隔)
时间: 2023-06-08 17:07:16 浏览: 99
好的,我可以帮你回答这个问题。
下面是一个示例函数的代码,用于计算输入字符串中的单词数:
```c
int count_words(char *str) {
int count = 0;
int in_word = 0; // 表示是否在单词中
// 逐个遍历字符串中的字符
while (*str) {
if (*str == ' ') {
in_word = 0;
} else if (!in_word) {
in_word = 1;
count++;
}
str++; // 移动指针到下一个字符
}
return count;
}
```
这个函数首先初始化计数器 `count` 和标志变量 `in_word`,然后逐个遍历输入字符串中的字符。
如果遇到空格字符,则将标志变量 `in_word` 设置为 `0`,表示不在单词中;如果遇到非空格字符,并且之前不在单词中,则将标志变量 `in_word` 设置为 `1`,并将计数器 `count` 加 `1`。
最后返回计数器的值即可。
你可以在你的程序中调用这个函数,传入要统计单词数的字符串作为参数。
相关问题
用c++20标准写一个函数计算字符串中的单词数(假设每个单词之间有一个空白字符进行分隔)
好的,我会回答你的问题。下面是用C语言20标准写一个计算字符串中单词数的函数:
```c
#include <stdio.h>
#include <ctype.h>
int count_words(const char *str) {
int cnt = 0;
int is_word = 0; // 用于判断是否在单词中
while (*str) {
if (isspace((unsigned char)*str)) {
// 如果是空白字符,则不在单词中
is_word = 0;
} else {
// 如果是非空白字符,则在单词中
if (!is_word) cnt++; // 如果上一个字符不在单词中,则计数器加1
is_word = 1;
}
str++;
}
return cnt;
}
```
这个函数的工作原理是:遍历字符串中的每个字符,如果遇到空白字符(如空格、制表符、换行符等),则表示当前不在单词中;否则,如果之前不在单词中,则计数器加1。最后返回计数器的值,即为单词数。
你可以将字符串作为参数传递给这个函数,比如:
```c
int main() {
const char str[] = "Hello, world! This is a string with some words.";
int n = count_words(str);
printf("The string '%s' contains %d words.\n", str, n);
return 0;
}
```
这个程序的输出结果是:
```
The string 'Hello, world! This is a string with some words.' contains 9 words.
```
希望这个函数能够解决你的问题!
用C++编写一个函数计算字符串中的单词个数(假设每个单词之间至少有一个空白字符分隔开)
好的,您可以参考下面的 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 循环内部就会发现这些空格字符并加入到单词的统计中去,因此可以正确地计算字符串中的单词个数。
阅读全文