完成一个函数,实现在一个给定字符串中寻找子串的功能(不能使用库函数)。
实现如下:
//完成一个函数,实现在一个给定字符串中寻找子串的功能(不能使用库函数)。
bool IsHaveSubStr(const char* strSrc, const char* strSub)
{
char* p = (char*)strSrc;
char* q = (char*)strSub;
int nLenSrc;
int nLenSub;
if (p==NULL||q==NULL ||*p=='\0' || *q== '\0') return false;
while (p!=NULL)
{
//strSub循环结束
if (*q=='\0')
{
return true;
}
//strSub比strSrc长
if (*p =='\0')
{
return false;
}
if (*p != *q)
{
p++;
q = (char*)strSub;
}
else
{
p++;
q++;
}
}
return false;
}
测试代码:
int main()
{
char strSrc[100];
char strSub[20];
bool bRet;
while(1)
{
memset(strSrc, 0, 100);
cout << "请输入最大长度为100的字符串,输入end结束。" << endl;
scanf("%s", strSrc);
if (memcmp(strSrc, "end", 3) == 0)
{
break;
}
else
{
memset(strSub, 0, 20);
cout << "请输入最大长度为20的子字符串。" << endl;
scanf("%s", strSub);
bRet = IsHaveSubStr(strSrc, strSub);
cout << bRet << endl;
}
}
return 0;
}
测试结果就不贴了,有兴趣的朋友可以试试。
转载请注明原创链接:http://blog.csdn.net/wujunokay/article/details/12178825