字符串自实现(一)(mystrcpy,mystrcat,mystrcmp)

char* mystrcpy(char* str_one,const char* str_two)
{
    char* tmp = str_one;
    while (*str_one++ = *str_two++)return tmp;
}
char* mystrcat(char* str_one,const char* str_two)
{
    char* tmp = str_one;
    while (*str_one)str_one++;
    while (*str_one++ = *str_two++)return tmp;
}

//1-7为逐渐优化过程
int mystrcmp1(const char* str_one,const char* str_two)
{
    while (*str_one != '\0'&&*str_two != '\0')
    {
        if (*str_one > *str_two)
        {
            return 1;
        }
        else if (*str_one < *str_two)
        {
            return -1;
        }
        else
        {
            str_one++;
            str_two++;
        }
    }
    if (*str_one != '\0'&&*str_two == '\0')
    {
        return 1;
    }
    else if (*str_one == '\0'&&*str_two != '\0')
    {
        return -1;
    }
    else
    {
        return 0;
    }
}

int mystrcmp2(const char* str_one, const char* str_two)
{
    while (*str_one != '\0'&&*str_two != '\0')
    {
        if (*str_one != *str_two)
        {
            return *str_one - *str_two;
        }
        else
        {
            str_one++;
            str_two++;
        }
    }
    return *str_one - *str_two;
}


int mystrcmp3(const char* str_one, const char* str_two)
{
    while (*str_one != '\0'&&*str_two != '\0')
    {
        if (*str_one != *str_two)
        {
            break;
        }
        else
        {
            str_one++;
            str_two++;
        }
    }
    return *str_one - *str_two;
}


int mystrcmp4(const char* str_one, const char* str_two)
{
    for (;*str_one != '\0'&&*str_two != '\0';str_one++,str_two++)
    {
        if (*str_one != *str_two)
        {
            break;
        }
    }
    return *str_one - *str_two;
}

int mystrcmp5(const char* str_one, const char* str_two)
{
    for (; *str_one&&*str_two; str_one++, str_two++)
        if (*str_one != *str_two)
            break;
    return *str_one - *str_two;
}

int mystrcmp6(const char* str_one, const char* str_two)
{
    for (; (*str_one&&*str_two) && (*str_one == *str_two); str_one++, str_two++);
    return *str_one - *str_two;
}

int mystrcmp7(const char* str_one, const char* str_two)
{
    for (; (*str_one&&*str_two) && (*str_one++ == *str_two++););
        return *str_one - *str_two;
}

 

posted @ 2020-12-10 12:54  sunshine_gzw  阅读(172)  评论(0编辑  收藏  举报