设为首页 加入收藏

TOP

C常用库函数实现
2017-06-14 10:22:44 】 浏览:1117
Tags:常用 函数 实现
C常用库函数实现
// ---------- strlen -------------
int strlen(char *t){
    int length = 0;
    if(t == NULL)
        return -1;

    while (*t != '\0') {
        t++;
        length++;
    }
    return length;
}

size_t strlen(const char *s)
{
    const char *sc;

    for (sc = s; *sc != '\0'; ++sc);

    return sc - s;
}

// ---------- trim -------------

void ltrim ( char *s )
{
    char *p;
    p = s;
    while ( *p == ' ' || *p == '\t' ) {p++;}
    strcpy ( s,p );
}

void rtrim ( char *s )
{
    int i;

    i = strlen ( s )-1;
    while ( ( s[i] == ' ' || s[i] == '\t' ) && i >= 0 ) {i--;};
    s[i+1] = '\0';
}

void trim ( char *s )
{
    ltrim ( s );
    rtrim ( s );
}

// ---------- strcpy -------------

char *strcpy(char *dest, const char *src)
{
    char *tmp = dest;

    while ((*dest++ = *src++) != '\0');

    return tmp;
}

// ---------- strcat -------------

char *strcat(char *dest, const char *src)
{
    char *tmp = dest;

    while (*dest)
        dest++;
    while ((*dest++ = *src++) != '\0');

    return tmp;
}

// ---------- strstr -------------

char *strstr(const char *s1, const char *s2)
{
    int l1, l2;

    l2 = strlen(s2);
    if (!l2)
        return (char *)s1;
    l1 = strlen(s1);
    while (l1 >= l2) {
        l1--;
        if (!memcmp(s1, s2, l2))
            return (char *)s1;
        s1++;
    }

    return NULL;
}


// ---------- memcmp -------------

int memcmp(char *cs, char *ct, size_t count)
{
    char *su1, *su2;
    int res = 0;

    for (su1 = cs, su2 = ct; 0 < count; ++su1, ++su2, count--)
        if ((res = *su1 - *su2) != 0)
            break;
    return res;
}

// ---------- strcmp -------------

int strcmp(const char *cs, const char *ct)
{
    unsigned char c1, c2;

    while (1) {
        c1 = *cs++;
        c2 = *ct++;
        if (c1 != c2)
            return c1 < c2 ? -1 : 1;
        if (!c1)
            break;
    }

    return 0;
}
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇循环链表和约瑟夫环 下一篇C语言中的运算符

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目