代码 力扣 C语言
int strStr(char * haystack, char * needle){
int lenhay =strlen(haystack),lenneedle =strlen(needle);
if(lenneedle == 0) return 0;
if(lenhay<lenneedle) return -1;
for(int i=0;i<=lenhay - lenneedle+1;i++){
for(int j=0;j<lenneedle;j++){
if(haystack[i+j] != needle[j]) break;
if(j ==lenneedle-1) return i;
}
}
return -1;
}
求出haystack和needle的长度,如果needle为空字符串则返回0
如果needle的长度大于haystack的长度,则直接返回-1
利用嵌套循环,将needle字符串与haystack字符串的每个位置进行比较。
只要有一个字符不符合就说明不是这个位置,break
如果内层循环到结尾说明所有字符相符,返回i也就是needle的位置。
如果外层循环结束了,就说明没有出现,返回-1
![](https://i-blog.csdnimg.cn/blog_migrate/9330a6429707c2b91a9d774fc5008298.jpeg)
运行结果