(C语言)常用字符串函数的模拟实现

目录

1、strlen的模拟实现

2、strcpy的模拟实现

3、strcat的模拟实现

4、strcmp的模拟实现

5、strstr的模拟实现


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;
}

猜你喜欢

转载自blog.csdn.net/m0_64051621/article/details/126795432