编写fun函数,用来统计一行字符串单词个数.作为函数值放回。字符串用主函数输入,单词之间有空格隔开。用c++写
时间: 2024-02-17 22:59:48 浏览: 110
下面是实现该函数的 C++ 代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int fun(char *str) {
int cnt = 0;
int len = strlen(str);
bool in_word = false; // 标记是否在单词中
for (int i = 0; i < len; i++) {
if (str[i] == ' ') {
in_word = false;
} else if (!in_word) {
cnt++;
in_word = true;
}
}
return cnt;
}
int main() {
char str[] = "hello world! how are you?";
int word_cnt = fun(str);
cout << "Word count: " << word_cnt << endl; // 输出: Word count: 5
return 0;
}
```
该函数接收一个字符串指针作为参数,对该字符串进行处理,统计其中的单词个数。具体实现方法是遍历字符串中的每个字符,如果遇到空格则标记不在单词中,否则如果当前不在单词中则计数器加一,并标记在单词中。最后返回计数器的值。
相关问题
用c语言编写函数fun,该函数的功能是: 统计一行字符中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格。
以下是用c语言编写的函数fun,实现统计一行字符中单词的个数:
```c
#include <stdio.h>
int fun(char str[]) {
int count = 1;
for (int i = 0; str[i] != '\0'; i++) {
if (str[i] == ' ') {
count++;
}
}
return count;
}
int main() {
char str[100];
printf("请输入一行字符串:");
fgets(str, 100, stdin);
printf("单词个数为:%d\n", fun(str));
return 0;
}
```
首先在主函数中输入一行字符串,再将其传递给fun函数。在函数中,我们用一个计数器count来记录单词的个数,初始值为1(因为一行的开始没有空格)。接着遍历字符串,如果遇到空格,就将计数器加1。最后函数返回计数器的值,即单词的个数。
注意,这里使用fgets函数输入字符串,因为它可以避免输入太长导致缓冲区溢出的问题。同时,需要注意字符串的最大长度,这里我们假设为100。
请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
好的,我可以回答这个问题。请看下面的函数实现:
```c
int fun(char *str) {
int count = ;
int in_word = ; // 标记是否在单词中
while (*str != '\') {
if (*str == ' ') {
in_word = ;
} else if (!in_word) {
in_word = 1;
count++;
}
str++;
}
return count;
}
```
这个函数会遍历输入的字符串,统计单词的个数并返回。注意,这个函数假设所有单词都由小写字母组成,单词之间由空格隔开,一行的开始没有空格。如果输入的字符串不符合这个规定,函数的行为就未定义了。
阅读全文