#include<stdio.h>
#include<assert.h>
char* strstr(const char* str1, const char* str2)
{
char* cp = (char*)str1;
char* s1, * s2;
if (!*str2)
return((char*)str1);
while (*cp)
{
s1 = cp;
s2 = (char*)str2;
while (*s1 && *s2 && !(*s1 - *s2))
s1++, s2++;
if (!*s2)
return (cp);
cp++;
}
return (NULL);
}
int main()
{
const char* s1 = "abcde";
const char* s2 = "de";
char*s3=strstr(s1, s2);
printf("%s", s3);
return 0;
}
//#include<stdio.h>
//#include<assert.h>
//size_t my_strlen(const char* s)
//{
// assert(s != NULL);
// const char* end = s;
// while (*end)
// {
// end++;
// }
// return end - s;
//}
//int main()
//{
// const char* str = "abcd1234";
// size_t size = my_strlen(str);
// printf("%d\n", size);
// return 0;
//}
//#include<stdio.h>
//#include<assert.h>
//char* my_strcpy(char* dest,const char* src)
//{
// char* ret = dest;
// assert(dest != NULL);
// assert(src != NULL);
// while ((*dest++ = *src++))
// {
// ;
// }
// return ret;
//}
//int main()
//{
// char s[20]="";
// const char* s2 = "abcde";
// my_strcpy(s, s2);
// printf("%s\n", s);
// return 0;
//}
//#include<stdio.h>
//#include<assert.h>
//char* my_strcat(char* dst, const char* src)
//{
// assert(dst != NULL);
// assert(dst != NULL);
// char* ret = dst;
// while (*dst) {
// dst++;
// }
// while (*dst=*src)
// {
// dst++;
// src++;
// }
// return ret;
//}
//int main()
//{
// const char* src = "abcd1234";
// char dst[16] = "XYZ";
// my_strcat(dst, src);
// printf("dst:%s\n", dst);
// return 0;
//}
//#include<stdio.h>
//#include<assert.h>
//int my_strcmp(const char* src, const char* dst)
//{
// assert(src != NULL);
// assert(dst != NULL);
// int ret = 0;
// while (!(ret = *(unsigned char *)src - *(unsigned char *)dst) && *dst)
// {
// src++;
// dst++;
// }
// if (ret < 0)
// {
// ret = -1;
// }
// else if (ret > 0)
// {
// ret = 1;
// }
// return ret;
//}
//int main()
//{
// const char* str1 = "abc1234";
// const char* str2 = "abcd1251";
// int ret = my_strcmp(str1, str2);
// printf("%d\n", ret);
// return 0;
//}
//#include<stdio.h>
//#include<assert.h>
//void* memcry(void* dst, const void* src, size_t count)
//{
// void* ret = dst;
// assert(dst);
// assert(src);
// while (count--) {
// *(char*)dst = *(char*)src;
// dst = (char*)dst + 1;
// src = (char*)src + 1;
// }
// return(ret);
//}
//int main()
//{
// char str1[20] = "ab";
// const char* str2 = "abcd";
// memcry(str1,str2,4);
// printf("%s",str1);
// return 0;
//}