欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

strstr()函数实现

程序员文章站 2024-03-22 13:39:28
...
#define _CRT_SECURE_NO_WARNINGS 1
#include"stdio.h"
#include "windows.h"
char* My_strstr( char* p1, const char* p2)
{
    char *  src = p2;
	char * dst = p1;    
	while (*dst)//当父串没走到结尾
	{
		 char *start = dst;//查到父串的位置,作个保存,不匹配时返回使用

		while (*dst == *src && *src != '\0')//当找到字串存在匹配时,接着判断是否完全匹配
		{
			dst++;//
			src++;
		}
		if (*src == '\0')//完全匹配  子串指针到了结尾,说明查到存在
		{
			return start;//返回查找到匹配的位置
		}
		else//否则说明,该趟不完全匹配
		{
			//start++;	//父串指针后移,因为再次循环时 start 将被重新赋值为dst指针
			src = p2;//重新指向被查字串的头
		}
		dst++;//父串指针向后移
	}
	return NULL;
}
int main(void)
{
	char *p1 = "as long as you love me";
	char p2[] = "you";
	//printf("%s",p1);
	printf("%s\n", My_strstr(p1, p2));
	system("pause");
	return 0;
}

strstr()函数实现

总结 : 机理 :
1 两个大循环 一个父串 ,一个待查找串(子串)
2 设置一个记录,不匹配返回
3 控制循环条件

相关标签: strstr函数