Funkcia strcmp () porovnáva dva reťazce a vráti 0, ak sú obidva reťazce identické.
C strcmp () prototyp
int strcmp (const char * str1, const char * str2);
strcmp()
Funkcia trvá dva reťazce a vráti celé číslo.
strcmp()
Porovnáva dva reťazce znak po znaku.
Ak je prvý znak dvoch reťazcov rovnaký, porovnáva sa ďalší znak dvoch reťazcov. Takto to pokračuje, kým sa zodpovedajúce znaky dvoch reťazcov nelíšia alebo kým ' '
sa nedosiahne nulový znak .
Je definované v string.h
hlavičkovom súbore.
Návratová hodnota z strcmp ()
Návratová hodnota | Poznámky |
---|---|
0 | ak sú obidva reťazce identické (rovnaké) |
negatívny | ak je hodnota ASCII prvého nezhodného znaku menšia ako druhá. |
kladné celé číslo | ak je hodnota ASCII prvého nepriradeného znaku väčšia ako druhá. |
Príklad: C strcmp () funkcia
#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; )
Výkon
strcmp (str1, str2) = 32 strcmp (str1, str3) = 0
Prvý nepriradený znak medzi reťazcami str1 a str2 je tretí znak. Hodnota ASCII pre „c“ je 99 a ASCII pre „C“ je 67. Preto pri porovnaní reťazcov str1 a str2 je návratová hodnota 32.
Pri porovnaní reťazcov str1 a str3 je výsledok 0, pretože obidva reťazce sú identické.