模拟实现字符函数,自己看的。
#include<stdio.h>
#include<assert.h>
//size_t my_strlen(char* arr)
//{
// assert(arr);
// if (*arr != '\0')
// {
// return my_strlen(arr + 1) + 1;
// }
//}
//int main()
//{
// char arr1[] = "abcedf";
// size_t len = my_strlen(arr1);
// printf("%zd\n", len);
// return 0;
//}
//size_t my_strlen(char* arr)
//{
// assert(arr);
// size_t count = 0;
// while (*arr != '\0')
// {
// count++;
// arr++;
// }
// return count;
//}
//int main()
//{
// char arr1[] = "abcedf";
// size_t len = my_strlen(arr1);
// printf("%zd\n", len);
// return 0;
//}
//
//size_t my_strlen(char* arr)
//{
// assert(arr);
// char* end = arr;
// while (*++end != '\0')
// {
// ;
// }
// return end - arr;
//}
//int main()
//{
// char arr1[] = "abcedf";
// size_t len = my_strlen(arr1);
// printf("%zd\n", len);
// return 0;
//}
//void my_strcpy(char* dest,const char* src)
//{
// assert(dest && src);
// while (*dest++ = *src++)
// {
// ;
// }
//
//}
//int main()
//{
// char arr1[20] = "xxxxxxxxxx";
// char arr2[] = "abcde";
// my_strcpy(arr1, arr2);
// printf("%s\n", arr1);
// return 0;
//}
//void my_strcat(char* dest, const char* src)
//{
// assert(dest && src);
// while (*dest != '\0')
// {
// dest++;
// }
// while (*dest++ = *src++)
// {
// ;
// }
//}
//int main()
//{
// char arr1[20] = "abc\0xxxx";
// char arr2[] = "def";
// my_strcat(arr1, arr2);
//
// return 0;
//}
//int my_strcmp(const char* dest, const char* src)
//{
// assert(dest && src);
// while (*dest == *src)
// {
// if (*dest == '\0')
// return 0;
// dest++;
// src++;
// }
//
// return *dest - *src;
//}
//int main()
//{
// char arr1[] = "abqde";
// char arr2[] = "abqxe";
// int ret = my_strcmp(arr1, arr2);
// if (ret == 0)
// {
// printf("==");
// }
// else if (ret > 0)
// {
// printf(">");
// }
// else
// {
// printf("<");
// }
// return 0;
//}
const char* my_strstr(const char* dest, const char* src)
{
assert(dest && src);
if (*src == '\0')
{
return dest;
}
char* cp = dest;
char* s1;
char* s2;
while (*cp)
{
s1 = cp;
s2 = src;
while (*s1 == *s2 && *s1 && *s2)
{
s1++;
s2++;
}
if (*s2 == '\0')
return cp;
cp++;
}
return NULL;
}
#include<stdio.h>
int main()
{
char arr1[] = "abbbcdef";
char arr2[] = "bbc";
const char* ret = my_strstr(arr1, arr2);
printf("%s\n", ret);
return 0;
}