利用断言实现strcmp,strcmp,strcat,strcpy

int str_len(const char* str)
{
    assert( str != NULL);

    int len = 0;
    while(*str++) len++;
    return len;
}

char* str_cpy(char* str,const char* src)
{
    assert(str != NULL && src != NULL);
    char* tmp = str;
    while(*str++ = *src++);

    return tmp;

}

char* str_cat(char* str,const char* src)
{
    assert(str!=NULL && src!=NULL);

    char* tmp = str;
    while(*str) str++;  //注意str++不能放括号里,会使str指向'\0'后一个字符
    while(*str++ = *src++);
    return tmp;
}

int str_cmp(const char* str,const char* src)
{
    assert(str!=NULL && src!=NULL);

    while(*str == *src)
    {
        if(*str == '\0')
            return 0;
        str++;
        src++;
    }
    if(*str > *src)
        return 1;
    else
        return -1;
}

猜你喜欢

转载自www.cnblogs.com/xiehuan-blog/p/9550418.html
今日推荐