stristr函数学习

stristr函数

用来实现在一个字符串中找出一个子串,大小写不敏感。

此处大小写是 采用字符和32作或操作,大写字母的ASCii是65开始,小写字母是从97开始,用32和字符作或操作,正好打开了第五位,若该字母是大写的,则可转为小写,若为小写的,则保持不变,这样就可以根据其大小比较,非常方便。

//teststristr.cpp

#i nclude <stdio.h>

char * Stristr(const char * Src,const char *Dest)

{

 char * s1 = (char *)Src;

 char * d1 = (char *)Dest;

 char * d2 = d1;

 char * s2 = s1;

 if (s1 == NULL || d1 == NULL)

 {

  return NULL;

 }

 while (true)

 {

  while (('\0' != *s1)

    &&('\0' != *d1)

    &&(((*s1)|32) == ((*d1)|32))

    )

  {

   s1++;

   d1++;

  }

  if (*d1 == '\0')

  {

   return (s2);

  }

  

  if (*s1 == '\0')

  {

   return NULL;

  }

  

  d1 = d2;

  s2++;

  s1 = s2;

 }

}

int main()

{

 char *chr1 = "hello world,my na877me is Shen Rong rong!";

 char *dest1 = "877";

 char *retchr = Stristr(chr1,dest1);

 printf("%s\n",retchr);

 return 0;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值