#include<stdio.h>
#include<string.h>
#include<assert.h>
void *mem_cpy(void *dest, const void *src, int n)
{
assert((dest != NULL) && (src != NULL));
char *d = (char *)dest;
const char *s = (const char *)src;
while(n--)
*d++ = *s++;
return d;
}
char *str_cpy(char *dest, const char *src)
{
assert((dest != NULL) && (src != NULL));
char *tmp = dest;
while((*tmp++ = *src++) != '\0')
;
return tmp;
}
int *str_cmp(char *s1, char *s2)
{
int i = 0;
int b = 0;
while(s1[i] || s2[i])
{
if(s1[i] > s2[i])
{
b = 1;
break;
}
else if(s1[i] < s2[i])
{
b = -1;
break;
}
i++;
}
return b;
}
int str_cmp2(char *s1, char *s2)
{
while((*s1 != '0') && (*s1 == *s2))
{
s1++;
s2++;
}
return((*s1) - (*s2) ? -1 : 0);
}
int str_len(char *s)
{
assert(s != NULL);
int len = 0;
while(*s++ != '\0')
len++;
return len;
}
//int str_reverse(char *s)
int main()
{
char str[] = "hello world";
char dst[] = "HELLO";
printf("%s\n", str);
mem_cpy(dst, str, 4);
printf("%s\n", dst);
str_cpy(dst, str);
printf("%s\n", dst);
printf("%d\n", str_cmp2("abc", "abc"));
printf("%d\n", str_len("mayingchun"));
return 0;
}