目录
1、(求字符串长度)strlen的模拟实现
2、(拷贝字符串)strcpy的模拟实现
char* my_strcpy(char* dest, const char* src)
{
assert(dest);
assert(src);
char* ret = dest;//记录目标字符串的起始位置,最后返回ret
while(*dest++ = *src++)
{
;
}
return ret;
}
3、(拼接字符串)strcat的模拟实现
char* my_strcat(char* dest, const char* src)
{
assert(dest);
assert(src);
char* s = dest;
while(*s) //找到目标字符串的结尾‘\0’
{
s++;
}
while(*s++ = *src++)
{
;
}
return dest;
}
4、(比较字符串大小)strcmp的模拟实现
int my_strcmp(const char* str1, const char* str2)
{
assert(str1);
assert(str2);
while(*str1 == *str2)
{
if(*str1 == '\0')//两个字符串都比较到了结尾且都相等
{
return 0;
}
str1++;
str2++;
}
return *str1 - *str2;
}
5、(找字符串中的子串)strstr的模拟实现
char* my_strstr(const char* str1, const char* str2)
{
assert(str1);
assert(str2);
const char* s1 = str1;
const char* s2 = str2;
const char* p = str1;
while(*p)
{
s1 = p;
s2 = str2;
while((*s1 != '\0') && (*s2 != '\0') && (*s1 == *s2))
{
s1++;
s2++;
}
if(*s2 == '\0')
{
return (char*)p;//找到了
}
p++;
}
return NULL;
}