C语言远征第十五天
这次将string库函数自己编程实现
1.实现strstr
//模拟实现strstr
const char * Strstr(const char str1[], const char str2[])
{
for (int i = 0; str1[i] != '\0'; ++i)
{
int j = i;
int z = 0;
while (str1[j] == str2[z])
{
j++;
z++;
}
if (str2[z] == '\0')
{
return &str2[i];
}
else
{
z = 0;
}
}
return NULL;
}
2.实现strchr
char *Strchr(const char *str1, int cha)
{
for (; *str1 != '\0'; ++str1)
{
if (*str1 == cha)
{
return str1;
}
}
return NULL;
}
3.实现strcmp
//模拟实现strcmp
int Strcmp(const char* str1,const char* str2)
{
for (str1,str2; *str1 != '\0'&& *str2 != '\0'; ++str1,++str2)
{
if (*str1 == *str2)
{
continue;
}
else if (*str1 < *str2)
{
return -1;
}
else
{
return 1;
}
}
return 0;
}
4.实现memcpy
//模拟实现memcpy
void * Memcpy(void * dest, const void * src, size_t num)
{
char *a = (char *)dest;
const char *b = (const char *)src;
for (;num>0;--num)
{
*a = *b;
a++;
b++;
}
return dest;
}
5.实现memmove
//模拟实现memmove
void * Memmove(void * dest, const void * src, size_t num)
{
char *a = (char *)dest;
const char *b = (const char *)src;
for (; num > 0; --num)
{
*(a + num - 1) = *(b + num - 1);
}
return dest;
}