输入带空格的字符串,求单词个数

  1. 输入带空格的字符串,求单词个数
    1. __ueooe_eui_sjje__ ---->3
    2. syue__jdjd____die_ ---->3
    3. shuue__dju__kk ---->3 
    4. #include <stdio.h>
      #include <string.h>
      
      // 自定义函数来判断字符是否为空白字符
      int isSpace(char c) {
          return c == ' ' || c == '\t' || c == '\n' || c == '\r';
      }
      
      // 计算字符串中单词的数量
      int countWords(const char* str) {
          int state = 0; // 0: 在单词外, 1: 在单词内
          int wordCount = 0;
      
          while (*str) {
              // 如果当前字符不是空白字符并且状态是“在单词外”
              if (!isSpace(*str) && state == 0) {
                  state = 1; // 进入单词
                  wordCount++; // 增加单词计数
              }
              // 如果当前字符是空白字符并且状态是“在单词内”
              else if (isSpace(*str) && state == 1) {
                  state = 0; // 离开单词
              }
              str++;
          }
      
          return wordCount;
      }
      int main() {
          char a1[]="  ueooe eui sjje   ";
          char a2[]="syue  jdjd   die  ";
          char a3[]="shuue  dju  kk";
          size_t len1 = strlen(a1);
          size_t len2 = strlen(a2);
          size_t len3 = strlen(a3);
          // 计算单词个数
          int wordCount1 = countWords(a1);
          int wordCount2 = countWords(a2);
          int wordCount3 = countWords(a3);
      
          // 输出结果
          printf("a1单词个数是: %d\n", wordCount1);
          printf("a2单词个数是: %d\n", wordCount2);
          printf("a3单词个数是: %d\n", wordCount3);
      
          return 0;
      }
      
      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值