该函数的能判断一个英文句子str中是否含有某个单词,在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那个单词,则输出“YES”,否则输出“NO”。

题目如下:

编写一个C程序,实现以下功能:
编写一个函数,该函数的能判断一个英文句子str中是否含有某个单词w,如“How old are you?”含有“old”。在main函数中输入一个英文句子,再输入一个单词,如果英文句子中含有那个单词,则输出“YES”,否则输出“NO”。

对题目的浅度分析:

1.解决该题需要解决的问题:
2.创建一个判断句子中是否存在指定单词的函数,并通过pd变量判断输出yes或者no
3.需要特殊处理的地方,开头的首字母要转为小写便于判断,其次最后一个单词需要特别注意,避免比较到两字符串的空字符,所以j应设置一个范围

对题目的深入解析及源代码如下:

  #include <stdio.h>
  #include <string.h>
  void  main()
  {
      char a[100];
      char b[100];
      int pd;
      int cz(char m[],char n[]);
      printf("输入一个句子:");
      gets_s(a,100);//vs2019中gets已经无法使用但可以使用gets_s();
      printf("输入你要查找的单词:");
      gets_s(b, 100);
      pd=cz(a,b);//通过判断变量来确定是否含有指定单词
      if (pd == 1)
      {
           printf("YES\n");
      }
      else
      {
           printf("NO\n");
      }
  }
  int cz(char m[], char n[])
  {
      int i,l,l1,j;
      _strlwr(m);//将开头大写字母,及一些大写的单词转化为小写,方便比较
      l=strlen(m);
      l1 = strlen(n);
      int count,pd=0;
      for (i = 0;i <= l- 1;i++)//以长句子作为外循环,从每个但词开始与指定
      {//                       单词首字母做比较
           count  = i;
           j  = 0;
           while(m[count]==n[j]&&j<=l1-1)//如果首字母相同,则继续比较
           {//                        直到与指定单词比较完毕
               count++;
               j++;
           }
           if (j == l1)//如果j等于指定单词长度则所明,所比较字母都相同
           {
               pd  = 1;
               break;
           }
      }
      return pd;//返回判断值
  }
  

总结:

本文皆为原创,未经允许不得转载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值