模拟C函数库strstr()函数

函数返回一个指针,它指向字符串strCharSet首次出现于字符串string中的位置,如果没有找到,返回NULL。

const char * MyStrStr(const char * string, const char * strCharSet)
{
	char * p1 = const_cast<char *> (string);  //去常量性
	char * p2 = const_cast<char *> (strCharSet);
	char * pRet = NULL;
	while (*p1 != '\0')
	{
		char * ptemp1 = p1;
		char * ptemp2 = p2;
		int iCount = 0;
		if (*ptemp1 == *ptemp2) //源字符串某一字符与子串首字符相等,则检测后续字符是否与子串对应相等
		{
			while (*ptemp1 == *ptemp2 && *ptemp2 != '\0')
			{
				ptemp1++;
				ptemp2++;
				iCount++;
			}
			//若相等字符串个数等于子串长度,则匹配成功
			if (ptemp2 == p2 + iCount)
			{
				pRet = p1;
				break;
			}
		}
		++p1;
	}
	return pRet;
}


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值