模拟实现strcmp函数

    技术2026-04-15  4

    1. 描述

    int strcmp ( const char * str1, const char * str2 );str1>str2=1 ,str1<str2=-1, str1==str2=0.比较对应位置的ACSII码,直接返回,不必拘泥于字符串长度等问题。对指针缺乏安全性检查,空指针程序会崩溃。

    2.代码展示

    #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> int mystrcmp(const char* str1, const char* str2) //int strcmp ( const char * str1, const char * str2 ); { assert(str1&&str2); int len1 = strlen(str1), len2 = strlen(str2); int max= len1 > len2 ? len1 : len2; for (int i = 0; i<max; ++i) { if (str1[i] > str2[i]) return 1; else if (str1[i] < str2[i]) return -1; else ; } return 0; } void test5() { const char* arr1 = "appless"; const char* arr2 = "apple"; const char* arr3 = "pear"; int ret = 0; ret = strcmp(arr1, arr2); printf("%d\n", ret); ret = mystrcmp(arr1, arr2); printf("%d\n", ret); } int main() { test5(); system("pause"); return 0; }

    3.结果展示

    Processed: 0.016, SQL: 10