函数
const char* Strstr(const char* str1, const char* str2) {
assert(str1 != NULL);
assert(str2 != NULL);
//保存下一次比较时 str1 的起始位置
const char* sign = str1;
//比较时 str1 的起始位置
const char* restart1 = sign;
//比较时 str2 的起始位置
const char* restart2 = str2;
while (*restart1 != '\0') {
while (*restart1 != '\0' && *restart2 != '\0'
&& *restart1 == *restart2) {
++restart1;
++restart2;
}
if (*restart2 == '\0') {
return sign;
}
restart2 = str2;
++sign;
restart1 = sign;
}
return NULL;
}
测试
#include <stdio.h>
#include <assert.h>
int main() {
char str1[] = "I love you!";
char str2[] = "love";
const char* str = Strstr(str1, str2);
printf("%s\n",str);
return 0;
}