strcmp()是內置庫函數,並在頭文件中聲明。此函數將兩個字符串作為參數,然後按字典順序比較這兩個字符串。
用法::
int strcmp(const char *leftStr, const char *rightStr );
在上述原型中,函數srtcmp將兩個字符串作為參數,並根據字符串的比較返回一個整數值。
- strcmp()從字法上比較兩個字符串,這意味著它從第一個字符開始逐個字符開始比較,直到兩個字符串中的字符相等或遇到NULL為止。
- 如果兩個字符串中的第一個字符相等,則此函數將檢查第二個字符,如果也相等,則將檢查第三個字符,依此類推
- 該過程將繼續進行,直到任一字符串中的字符為NULL或字符不相等為止。
What does strcmp() return?
該函數可以基於比較返回三個不同的整數值:
- 零(0):當發現兩個字符串相同時,該值等於零。也就是說,兩個字符串中的所有字符都相同。
All characters of strings are same
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { char leftStr[] = "g f g"; char rightStr[] = "g f g"; // Using strcmp() int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , res); return 0; }
輸出:
Strings are equal Value returned by strcmp() is: 0
- 大於零(> 0):當leftStr中第一個不匹配的字符的ASCII值大於rightStr中相應字符的ASCII值時,返回大於零的值,或者我們也可以說
If character in leftStr is lexicographically after the character of rightStr
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { // z has greater ASCII value than g char leftStr[] = "zfz"; char rightStr[] = "gfg"; int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue of result:%d" , res); return 0; }
輸出:
Strings are unequal Value returned by strcmp() is: 19
- 小於零(:當leftStr中的第一個不匹配字符的ASCII值小於rightStr中的相應字符時,返回小於零的值。
If character in leftStr is lexicographically before the character of rightStr
// C program to illustrate // strcmp() function #include<stdio.h> #include<string.h> int main() { // b has less ASCII value than g char leftStr[] = "bfb"; char rightStr[] = "gfg"; int res = strcmp(leftStr, rightStr); if (res==0) printf("Strings are equal"); else printf("Strings are unequal"); printf("\nValue returned by strcmp() is: %d" , res); return 0; }
輸出:
Strings are unequal Value returned by strcmp() is: -5
相關用法
注:本文由純淨天空篩選整理自 strcmp() in C/C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。