曾经被百度面试官虐的时候碰到过这题。
注意:字符串以'\0'结束,NULL和'\0'不等价。
暴力解决:
外循环:遍历haystack;
内循环:遍历needle,若字符不匹配则跳出,当遍历到needle结束时,返回当前i,若遍历到haystack结束,则不存在匹配子串,返回-1。
int strStr(char* haystack, char* needle)
{
if (haystack == NULL || needle == NULL)
return -1;
for (int i = 0; ; ++i)
{
for (int j = 0; ; ++j)
{
if (needle[j] == '\0') return i;
if (haystack[i + j] == '\0') return -1;
if (haystack[i + j] != needle[j]) break;
}
}
}

本文介绍了一种简单的字符串匹配算法实现,通过双重循环遍历主字符串和模式字符串来查找是否存在匹配的子串。文章提供了具体的C语言实现代码,并强调了字符串结束符与NULL的区别。
331

被折叠的 条评论
为什么被折叠?



