int mystrlen(const char *s)
{
assert(s != NULL);
int num = 0;
while(*s != '\0')
{
s++;
num++;
}
return num;
}
char *mystrcpy(char *dest, const char *src)
{
assert(dest != NULL && src != NULL);
char *ret = dest;
while((*dest++ = *src++) != '\0');
return ret;
}
int mystrcmp(const char *s1, const char *s2)
{
assert(s1 != NULL && s2 != NULL);
while(*s1 == *s2 && *s1 != '\0' && *s2 != '\0')
{
s1++;
s2++;
}
return *s1 - *s2;
}
char *mystrcat(char *dest, const char *src)
{
assert(dest != NULL && src != NULL);
char *ret = dest;
while(*dest != '\0')
{
dest++;
}
while((*dest++ = *src++) != '\0');
return ret;
}
char *mystrstr(const char *haystack, const char *needle)
{
assert(haystack != NULL && needle != NULL);
while(*haystack != '\0')
{
const char *s1 = haystack;
const char *s2 = needle;
while(*s1 == *s2 && *s1 != '\0' && *s2 != '\0') //srtcmp的思想
{
s1++;
s2++;
}
if(*s2 == '\0')
{
return (char *)haystack;
}
haystack++;
}
return NULL;
}