字符串處理函數的編程實現

1.strlen的實現

int my_strlen(char *src)
{
    int count = 0;
    while(*src != '\0')
    {
        count++;
    src++;
    }
    return count;
}

2.strcpy的實現

char * my_strcpy(char *dest, char *src)
{
    char *temp = dest;

    while(*src != '\0')
    {
        *(temp++) = *(src++);
    }
    *temp = '\0';

    return dest;
}

3.strncpy的實現

char * my_strncpy(char *dest, char *src, int n)
{
    int i;

    if(my_strlen(src) < n)
    {
        return NULL;
    }

    for(i = 0; i < n; i++)
    {
        *(dest + i) = *(src + i);
    }
    *(dest + i) = '\0';

    return dest;
}

4.strcat的實現

char * my_strcat(char *dest, char *src)
{
    char *temp = dest;

    while(*temp != '\0')  //將指針移到dest末尾
    {
        temp++;
    }

    while(*src != '\0')
    {
        *(temp++) = *(src++);
    }
    *temp = '\0';

    return dest;
}

5.strcmp的實現

int my_strcmp(char *s1, char *s2)
{
    while(*s1 != '\0' && *s2 != '\0')
    {
        if(*s1 - *s2 > 0)
    {
        return 1;
    }
    else if(*s1 - *s2 < 0)
    {
        return -1;
    }

    s1++;
    s2++;
    }

    if(*s1 == '\0' && *s2 == '\0')
    {
        return 0;
    }
    else if(*s1 == '\0' && *s2 != '\0')
    {
        return -1;
    }
    else if(*s1 != '\0' && *s2 == '\0')
    {
        return 1;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章