请编写函数fun,函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格。
时间: 2023-04-01 21:00:21 浏览: 135
好的,我可以回答这个问题。请看下面的函数实现:
```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;
}
```
这个函数会遍历输入的字符串,统计单词的个数并返回。注意,这个函数假设所有单词都由小写字母组成,单词之间由空格隔开,一行的开始没有空格。如果输入的字符串不符合这个规定,函数的行为就未定义了。
相关问题
请编写函数fun(),函数的功能是:统计一行字符串中单词的个数,作为函数值返回。一行字符串在主函数中输入,规定所有单词由小写字母组成,单词之间由若干个空格隔开,一行的开始没有空格(用指针实现)
好的,我可以为您编写该函数。下面是代码:
```c
int fun(char* str){
int cnt = 0;
while(*str != '\0'){
if(*str != ' ' && (*(str+1) == ' ' || *(str+1) == '\0')){
cnt++;
}
str++;
}
return cnt;
}
```
该函数的实现原理是遍历整个字符串,每当遇到一个单词末尾时(即当前字符为非空格,下一个字符为空格或字符串结束符),单词计数器加一。最后返回计数器即可。
请注意,在使用该函数时需要注意传入的字符串参数必须为指针类型,并且字符串不能改变。如果需要修改字符串内容,需要使用数组或者动态内存分配来存储字符串。
用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。
阅读全文