【基础算法】统计一行字符串单词的个数,作为函数值返回

1 题目

函数:fun()

功能:统计一行字符串单词的个数,作为函数值返回

一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格

2 思路

逐个字符进行判断是否为空

下面“空开处”指的是一个空格或者若干空格隔开单词的说法

  1. 开头无空格,故需要判断结尾有没有空开出,如果有,直接计算空开出就是单词数,如果没有需要单词数加1
  2. 上述1中的空开出需要做处理,由于单词间由若干空格隔开,故判断一个空格的前一个是否为空格,如果不是,数量加1;如果是,不做处理

3 代码

#include<stdio.h> 
#include<string.h>
#define M 3 
#define N 4 
/**
函数:fun()
功能:统计一行字符串单词的个数,作为函数值返回

一行字符串在主函数中输入,规定所有单词都是由小写字母组成,单词之间由若干空格隔开,一行的开始没有空格
**/

int fun(char *s) {
    int cnt = 0;    // 单词个数
    int i = 0;
    while(*(s+i)!='\0') {
        if (*(s+i) == ' ' && *(s+i-1) != ' ') {
            cnt += 1;
        }
        ++i;
    }
    if (*(s+i-1) != ' '){   // 如果单词结尾没有空格,则单词数需要空开数+1
        return cnt + 1;
    }
    return cnt;
}

int main(int argc, char const *argv[]) {
    char s[] = "hello world      i am c language";
    printf("字符串内容:%s\n", s);
    printf("单词个数为:%d\n", fun(s));
}

示例结果:

$ gcc ex003.c -o demo
$ ./demo
字符串内容:hello world      i am c language
单词个数为:6

发布者:Johngo学长。文章已受到原创版权保护。
转载请注明出处:https://www.johngo689.com/2451/

(0)
上一篇 2021年11月16日 下午6:30
下一篇 2021年11月18日 上午11:45

相关推荐

发表评论

登录后才能评论
免费咨询
免费咨询
扫码关注
扫码关注
分享本页
返回顶部