1.模拟实现strcat--字符串追加
void my_strcat(char* p1, char* p2)
{
assert(p1 != NULL);
assert(p2 != NULL);
//1.找到串1的'\0'
while (*p1++);
p1--;
while (*p1++ = *p2++);
}
int main()
{
char arr1[20]= "abcdef\0++++++++";
char arr2[] = "abcd";
my_strcat(arr1, arr2);
printf("%s\n", arr1);
}
2.模拟实现strstr--是否包含字串
char* my_strstr(const char* p1, const char* p2)
{
assert(p1 != NULL);
assert(p2 != NULL);
if (!*p2)
return (char*)p1;
char* s1=(char*)p1;
char* s2 = (char*)p2;
while (*s1++ != *p2);
s1--;
char* cur = s1;
while (*p1++){
s1 = cur;
s2 = (char*)p2;
while (*s1++ == *s2++)
{
if (!*s2)
return cur;
}
cur++;
}
return NULL;
}
int main()
{
char* arr1 = "abbbcdef";
char* arr2 = "bcdef";
char* ret=my_strstr(arr1, arr2);
printf("%s\n", ret);
}