strstr()函数的具体实现

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;
}
注:常量指针不可以给非常量指针赋值。

你可能感兴趣的:(strstr()函数的具体实现)