实现strcpy代码:
char * my_strcpy(char *des, const char *src)
{
if (!src) return NULL;
char * pd=des;
const char *ps = src;
while (*pd++ = *ps++);
return des;
}
实现strcat代码:
char *my_strcat(char *des, const char * src)
{
char *p = des;
while (*p)
{
p++;
}
const char *q = src;
while (*p++ = *q++);
return des;
}
实现strstr代码:
char * my_strstr(char *des, const char *src)
{
char *d = des;
char *rd = des;
const char *p = src;
while(*d)
{
if (*p == *d)
{
p++; d++;
}
else
{
rd++;
d = rd;
p = src;
}
if (!*p)return rd;
}
return 0;
}
实现strchr代码:
char * my_strchr(char *des, const char c)
{
char *p = des;
while (*p)
{
if (*p == c)
return p;
else p++;
}
return 0;
}
实现strcmp代码:
int my_strcmp(char *des, char *src)
{
assert(des);
assert(src);
char *p = des;
char *q = src;
while (*p&&*q)
{
if (*p > *q)
return 1;
else if (*p < *q)
return -1;
else p++, q++;
}
if (*p)return 1;
else if (*q)return -1;
else return 0;
}
实现memcpy代码:
void* my_memcpy(void* des, const void *src,int count)
{
if (!src) return NULL;
char * pd = des;
const char *ps = src;
while (count--)
{
*pd++ = *ps++;
}
return des;
}
实现memmove代码:
void* my_memmove(void* des, const void *src, int count)
{
if (!src) return NULL;
char * pd = des;
const char *ps = src;
if ((ps + count) > pd &&ps < pd)
{
ps = ps + count;
pd = pd + count;
while (count--)
{
*pd-- = *ps--;
}
}
else
{
while (count--)
{
*pd++ = *ps++;
}
}
return des;
}