实现strstr函数
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
char* Strstr(const char* str1,const char* str2) {
assert(str1 != NULL);
assert(str2 != NULL);
if (*str2 == '\0') {
return NULL;
}
//黑指针功能是用来记录从哪个位置来找字符串字串
char* black_ptr = str1;
while (*black_ptr != '\0') {
//红指针替代黑指针继续查找
char* red_ptr = black_ptr;
char* sub_ptr = str2;
while (*red_ptr != '\0'&&
*sub_ptr != '\0'&&
*red_ptr == *sub_ptr) {
++red_ptr;
++sub_ptr;
}
if (*sub_ptr == '\0') {
return black_ptr;
}
++black_ptr;
}
return NULL;
}
int main() {
char str1[] = "asdsaf";
char str2[] = "sds";
char* ret = Strstr(str1, str2);
printf("%p\n", str1);
printf("%p\n", ret);
system("pause");
return 0;
}