深入理解strstr
strstr作用展示:
#include <stdio.h>
#include <string.h>
int main()
{
char str[] = "This is a simple string";
char* pch;
pch = strstr(str, "simple");
/*strncpy(pch, "sample", 6);*/
printf("%s\n",pch);
return 0;
}
结果:
模拟实现:
//模拟实现strstr
#include<stdio.h>
const char* my_strstr(const char* str1, const char* str2) {
const char* cp = str1;
const char* s1 = NULL;
const char* s2 = NULL;
while (*cp) {//cp的作用是记录可能找到匹配的字符串的起始位置
s1 = cp;
s2 = str2;
while (*s1 == *s2 && *s1 != '\0' && *s2 != '\0') {
s1++;
s2++;
}
if (*s2 == '\0') {
return cp;
}
cp++;
}
return NULL;
}
int main() {
char arr1[] = "abbcdef";
char arr2[] = "bbc";
char*ret=my_strstr(arr1, arr2);
if (ret != NULL) {
printf("%s\n", ret);
}
else
printf("error\n");
return 0;
}