模拟实现strstr

原创 2016年06月02日 10:45:10

模拟实现strstr:

在系统库函数中,存在strstr函数,它用于查找子字符串。它的函数原型为:

char *strstr( const char *string, const char *strCharSet );

这个函数中是要从*string中查找*strCharSet子字符串。因为只是查找,这两个字符串都不用发生改变,所以将他们声明为常量字符串。

模拟实现strstr:

#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
char *my_strstr(const char *str1, const char *str2)//模拟实现strstr函数
{
        assert(str1);
        assert(str2);
	char *p1 = NULL;
	char *p2 = NULL;
	char *ptr = str1;
	while (*ptr)
	{
		p1 = ptr;
		p2 = str2;
		while (*p1 == *p2)
		{
			p1++;
			p2++;
			if (*p2 == '\0')
			{
				return ptr;//此时ptr的首地址就是要查找的子字符串在的位置
			}
		}
		ptr++;//上面没找到,使ptr指向下一个位置继续寻找
	}
	return NULL;
}
int main()
{
	char arr[20] = "abcdef";
	char *p = "def";
	char *ch = my_strstr(arr, p);//查找字符串函数
	if (ch != NULL)
	{
		printf("%p\n", ch);//找到并输出找到的字符串的地址
		printf("%s\n", ch);//输出字符串
	}
	else
	{
		printf("not exist\n");//没找到
	}
	system("pause");
	return 0;
}


本文出自 “Stand out or Get out” 博客,请务必保留此出处http://jiazhenzhen.blog.51cto.com/10781724/1716818

相关文章推荐

模拟实现strlen,strcpy,strcmp,strcat,strstr库函数

模拟实现strlen库函数 功能:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符'\0'。返回的长...

模拟实现C库函数strcpy,strcat,strstr,strchr,strcmp,memcpy,memmove

1、模拟实现strcpy char *my_strcpy( char *dest, const char *str) { assert(dest != NULL); assert(str != N...

模拟实现strstr函数

模拟实现strstr函数,简述其方法以及需要注意的地方。

模拟实现字符串操作函数(strcpy,strstr,strcat,strcmp,strlen)与内存操作函数(memcpy,memmove)

一、字符串操作         strcpy(str1,str2) 复制字符串         strcat(str1,str2) 附加字符串         strlen(str) 取字符串长度 ...

模拟实现strstr()函数

模拟实现strstr()函数

模拟实现strcmp、strcat、strstr

模拟实现strcmp(字符串大小比较函数) #define _CRT_SECURE_NO_WARNINGS 1 #include #include #include #include int my_...

C语言字符串函数的模拟实现(strlen、strcpy、strcat、strstr 、strcmp)

C语言库函数有很多,这里我针对几个字符串函数进行模拟实现: (1)strlen     字符串求长度函数 (2)strcpy     字符串拷贝函数 (3)strcat      字符串连接函数...

c语言之模拟实现求子串(strstr)函数

strstr (str1,str2)函数是用来判断字符串str2是否是字符串str1的子字符串的函数,如果是,则返回str2在str1中出现的首字符地址,否则返回null。 代码如下: #incl...

模拟实现strstr函数

strstr函数。 char *strstr(const char *str1, const char *str2) 这个函数的作用为查找字符串 str1中是否含有字符串str2,两种情况,有或没有,...
  • LLZK_
  • LLZK_
  • 2016年04月23日 15:35
  • 443

模拟实现strcpy,strcmp,strcat,strstr.strlen

strcpy函数实现 strcpy :字符串拷贝函数,  函数原型 char* strcpy(char* dest,char* src)    从stc的起始地址开始,到'\0'结束。 所以dest...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:模拟实现strstr
举报原因:
原因补充:

(最多只允许输入30个字)