您的位置:首页 > 编程语言 > C语言/C++

C语言:模拟实现strstr函数,若是子串,输出子串后面的字符串,否则输出null

2015-11-07 19:25 363 查看
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>

char* my_strstr( char* dest, char* src)
{
assert(src);
assert(dest);

char* s1 = dest;  //s1与s2控制src,dest往下走
char* p = s1;    //p是else中方便保存的下一个字符
char* s2 = src;

while (*s1)
{
p = s1;  //else中保存的下一个字符
s2 = src;
while (*s1 && *s2 )
{
if (*s1 == *s2)
{
s1++;
s2++;
}

//不相等则将arr1向下走一个字符,再开始比较是否相等
else
{
s1++;
break;
}
}

if (*s2 == '\0')    //相等,返回
{
return s1;
}
}
return NULL;
}

int main()
{
char arr1[]= "hello world";
char arr2[]= "llo";
char* ret = my_strstr(arr1, arr2);
printf("%s", ret);
system("pause");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息