字符串处置算法(四)现在一个给定字符串中寻找子串的功能(不能使用库函数)[2014百度笔试题]
字符串处理算法(四)现在一个给定字符串中寻找子串的功能(不能使用库函数)[2014百度笔试题]
测试代码:
完成一个函数,实现在一个给定字符串中寻找子串的功能(不能使用库函数)。
实现如下:
//完成一个函数,实现在一个给定字符串中寻找子串的功能(不能使用库函数)。 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.****.net/wujunokay/article/details/12178825