C language exercise 44: In-depth understanding of strstr

Deep understanding of strstr

strstr function display:

#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;
}

 result:

Simulation implementation:

//模拟实现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;
}

Guess you like

Origin blog.csdn.net/2301_77479435/article/details/132757747