C 語言標準函數庫分類導覽 - string.h strcmp()

string.h 的函數 strcmp() ,需要兩個字串當作參數,比較兩個字串是否相等,相等就回傳 0,第一個字串大於第二個字串回傳正值,反之回傳負值。



以下程式比較字串 s 與字串 t 是否相等
#include <stdio.h>
#include <string.h>

int main(void)
{
    char s[] = "Hello, world!";
    char t[] = "Hello, my friend!";
    int test = strcmp(s, t);
    
    if (test == 0) {
        printf("All right!\n");
    }
    else {
        if (test > 0) {
            printf("%s\n", s);
        }
        else {
            printf("%s\n", t);
        }
    } 
    
    return 0;    
}

/* 《程式語言教學誌》的範例程式
    http://pydoing.blogspot.com/
    檔名:cstrcmp.c
    功能:示範 string.h 中函數 strcmp() 的使用
    作者:張凱慶
    時間:西元2010年6月 */


編譯後執行,結果如下



您可以繼續參考


3 則留言:

Unknown 提到...

這題不是應該t字串比較大嗎
這樣執行結果是負數
應該要回傳t吧

Kaiching Chang 提到...

'w' 的 ASCII 值為 119 , 'm' 的 ASCII 值為 109 ,所以兩個字串依序比較到 'w' 及 't' 得出 strcmp(s, t) 回傳正值,故 s 大於 t ,謝謝發問 ^_^

Unknown 提到...

如果我只是想要判斷兩個字串是否相同
如果相同回傳0 不同則回傳-1
要如何寫呢?