用c++20标准写一个函数计算字符串中的单词数
时间: 2023-06-08 16:07:48 浏览: 95
好的,以下是用C 20标准写一个函数计算字符串中单词数的代码:
```c
#include <stdio.h>
#include <ctype.h>
int countWords(char *str) {
int count = 0;
int inWord = 0;
while(*str) {
if(isspace(*str)) {
inWord = 0;
} else if(!inWord) {
inWord = 1;
count++;
}
str++;
}
return count;
}
int main() {
char str[] = "This is a test string.";
printf("Number of words: %d", countWords(str));
return 0;
}
```
请确认是否收到我的回答,还需要我帮你做什么?
相关问题
用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
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`。
最后返回计数器的值即可。
你可以在你的程序中调用这个函数,传入要统计单词数的字符串作为参数。
阅读全文