实现strlen、strcpy、strcmp、strcat、memcpy等函数
<assert.h>
<string.h>
1、strcpy
char* strcpy(char* str1,const char* str2)
{
assert((str1 != NULL) && (str2 != NULL));
char* str3 = str1;
while((*str1++ == *str2++) != '\0');
return str3;
}
2、strlen
int strlen(const char * str)
{
int len = 0;
assert(NULL != str);
while (*str++ != '\0')
{
len++;
}
return len;
}
3、strcat
char* strcat(char *dest, const char *src)
{
char* destbak = dest;
assert(NULL != dest && NULL != src);
while ( '\0' != *dest)
{
dest++;
}
while (*dest++ = *src++);
return destbak;
}
4、strcmp
int mystrcmp1(const char *str1, const char *str2)
{
assert(NULL != str1 && NULL != str2);
while ( '\0' != *str1 || '\0' != *str2 )
{
if (*str1 > *str2)
{
return 1;
}
if (*str1 < *str2)
{
return -1;
}
str1++;
str2++;
}
if ('\0' == *str1 && '\0' == *str2)
{
return 0;
}
}
5、memcpy
void *my_memcopy(void *str1, const void *str2,int len)
{
char *tmp1=(char*)str1;
char *tmp2=(char*)str2;
void *ret=str1;
assert(NULL!=str1&&NULL!=str2);
while(len--)
{
*tmp1++ = *tmp2++;
}
return ret;
}