探索C语言中的字符串查找神器:strstr函数(4)

strstr函数介绍:

1.声明:

const char * strstr ( const char * str1, const char * str2 );
char * strstr ( char * str1, const char * str2 );

2.功能:

        查找并返回str1中第一次出现str2时的指针,如果str2不是str1的一部分,则返回null指针。

3.实现代码:

#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
#include 

char* prayer_strstr(const char* p1, const char* p2) {
	assert(p1 != NULL);
	assert(p2 != NULL);
	char* s1 = NULL;
	char* s2 = NULL;
	char* cur = (char*)p1;
	if (*p2 == '\0') {
		return (char*)p1;
	}
	while (*cur) {
		s1 = cur;
		s2 = (char*)p2;

		while (*s1 && *s2 && (*s1 == *s2)) {
			s1++;
			s2++;
		}
		if (*s2 == '\0') {
			return cur;//找到子串
		}
		cur++;
	}
	return NULL;
}

int main() {
	const char* p1 = "StarPrayer";
	const char* p2 = "Prayer";
	const char* ret = prayer_strstr(p1, p2);

	if (ret == NULL) {
		printf("子串不存在\n");
	}
	else {
		printf("%s\n", ret);
	}

	return 0;
}

你可能感兴趣的:(C语言,c语言,c++,学习)