c語(yǔ)言如何比較字符數(shù)組

小億
87
2024-09-26 01:07:14

在C語(yǔ)言中,比較字符數(shù)組通常是通過(guò)比較它們所指向的字符串的內(nèi)容來(lái)完成的。你可以使用 strcmp 函數(shù)來(lái)實(shí)現(xiàn)這一點(diǎn)。strcmp 是C標(biāo)準(zhǔn)庫(kù) <string.h> 中的一個(gè)函數(shù),其原型如下:

int strcmp(const char *s1, const char *s2);

這個(gè)函數(shù)比較兩個(gè)以空字符(null terminator)結(jié)尾的字符串 s1s2,并返回以下值:

  • 如果 s1s2 相等,則返回0。
  • 如果 s1 在字典順序上位于 s2 之前,則返回一個(gè)負(fù)數(shù)。
  • 如果 s1 在字典順序上位于 s2 之后,則返回一個(gè)正數(shù)。

下面是一個(gè)簡(jiǎn)單的示例,展示了如何使用 strcmp 來(lái)比較兩個(gè)字符數(shù)組:

#include <stdio.h>
#include <string.h>

int main() {
    char array1[] = "hello";
    char array2[] = "world";
    char array3[] = "hello";

    int result1 = strcmp(array1, array2);
    int result2 = strcmp(array1, array3);

    if (result1 < 0) {
        printf("array1 is less than array2\n");
    } else if (result1 > 0) {
        printf("array1 is greater than array2\n");
    } else {
        printf("array1 is equal to array2\n");
    }

    if (result2 == 0) {
        printf("array1 is equal to array3\n");
    } else {
        printf("array1 is not equal to array3\n");
    }

    return 0;
}

這段代碼首先定義了三個(gè)字符數(shù)組,然后使用 strcmp 來(lái)比較它們。輸出結(jié)果將顯示 array1array2 以及 array1array3 之間的關(guān)系。

0