Funktionen strcmp () jämför två strängar och returnerar 0 om båda strängarna är identiska.
C strcmp () Prototyp
int strcmp (const char * str1, const char * str2);
Den strcmp()
funktionen tar två strängar och returnerar ett heltal.
De strcmp()
jämför två strängar karaktär för karaktär.
Om det första tecknet i två strängar är lika jämförs nästa tecken i två strängar. Detta fortsätter tills motsvarande tecken i två strängar är olika eller ett noll tecken ' '
uppnås.
Det definieras i string.h
rubrikfilen.
Returvärde från strcmp ()
Returvärde | Anmärkningar |
---|---|
0 | om båda strängarna är identiska (lika) |
negativ | om ASCII-värdet för det första omatchade tecknet är mindre än det andra. |
positivt heltal | om ASCII-värdet för det första omatchade tecknet är större än det andra. |
Exempel: C strcmp () -funktion
#include #include int main() ( char str1() = "abcd", str2() = "abCd", str3() = "abcd"; int result; // comparing strings str1 and str2 result = strcmp(str1, str2); printf("strcmp(str1, str2) = %d", result); // comparing strings str1 and str3 result = strcmp(str1, str3); printf("strcmp(str1, str3) = %d", result); return 0; )
Produktion
strcmp (str1, str2) = 32 strcmp (str1, str3) = 0
Det första oöverträffade tecknet mellan sträng str1 och str2 är tredje tecken. ASCII-värdet på 'c' är 99 och ASCII-värdet på 'C' är 67. När strängar str1 och str2 jämförs är därför returvärdet 32.
När strängar str1 och str3 jämförs är resultatet 0 eftersom båda strängarna är identiska.