首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言模擬實現 strncmp:指定長度字符串比較

     編輯:關於C語言

strncmp vs strcmp

strncmp 僅比較前 n 個字符,若前 n 字符相同則返回 0,否則返回差值。

實現

int my_strncmp(const char *s1, const char *s2, size_t n) {
    assert(s1 && s2);
    while (n-- && *s1 && *s1 == *s2) { s1++; s2++; }
    return n == (size_t)-1 ? 0 : *s1 - *s2; // n 歸零表示前 n 字符相同
}

測試

int main() {
    char *a = "abcdeff", *b = "abcd";
    int len = strlen(a);
    int r = my_strncmp(a, b, len);
    printf("%d\n", r); // 非 0,因長度不同
    return 0;
}

注意

  • 若 n 大於任一字符串長度,遇到 '\0' 會提前停止。
  • 返回值語義與標準庫一致:<0, =0, >0。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved