模擬實現strcmp函數

strcmp爲字符串比較函數,其函數原型爲int strcmp( const char *string1, const char *string2 );
其功能是用來比較兩個字符串,設這兩個字符串爲str1,str2,若str1=str2,則返回零;若str1< str2,則返回負數(一般爲負1);若str1>str2,則返回正數(一般爲正1)。
思路:把兩個字符串的字符(ASCII碼)一個一個進行比較,當兩個字符串不一樣時,直接減,當兩個字符串相等時,直接輸出0。
具體實現如下:

#include<stdio.h>
#include<assert.h>

int my_strcmp(const char *str1,const char *str2)
{
    assert(*str1 != NULL);
    assert(*str2 != NULL);

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

int main()
{
    char *str1 = "abcd";
    char *str2 = "abcdf";
    int ret = my_strcmp(str1,str2);
    printf("%d\n",ret);
}

結果如下:
這裏寫圖片描述

明天繼續,加油!!!

發佈了36 篇原創文章 · 獲贊 44 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章