代码 力扣 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

运行结果