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

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

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/2451/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

免费咨询
免费咨询
扫码关注
扫码关注
联系站长

站长Johngo!

大数据和算法重度研究者!

持续产出大数据、算法、LeetCode干货,以及业界好资源!

2022012703491714

微信来撩,免费咨询:xiaozhu_tec

分享本页
返回顶部