Η συνάρτηση strcmp () συγκρίνει δύο χορδές και επιστρέφει 0 εάν και οι δύο χορδές είναι ίδιες.
C strcmp () Πρωτότυπο
int strcmp (const char * str1, const char * str2);
Η strcmp()
συνάρτηση παίρνει δύο χορδές και επιστρέφει έναν ακέραιο.
Η strcmp()
συγκρίνει δύο σειρές ανά χαρακτήρα.
Εάν ο πρώτος χαρακτήρας των δύο χορδών είναι ίσος, συγκρίνεται ο επόμενος χαρακτήρας των δύο χορδών. Αυτό συνεχίζεται έως ότου οι αντίστοιχοι χαρακτήρες των δύο χορδών είναι διαφορετικοί ή επιτευχθεί ένας μηδενικός χαρακτήρας ' '
.
Ορίζεται στο string.h
αρχείο κεφαλίδας.
Τιμή επιστροφής από strcmp ()
Αξία επιστροφής | Παρατηρήσεις |
---|---|
0 | εάν και οι δύο χορδές είναι ίδιες (ίσες) |
αρνητικός | εάν η τιμή ASCII του πρώτου ασυναγώνιστου χαρακτήρα είναι μικρότερη από τη δεύτερη. |
θετικός ακέραιος | εάν η τιμή ASCII του πρώτου ασυναγώνιστου χαρακτήρα είναι μεγαλύτερη από τη δεύτερη. |
Παράδειγμα: Συνάρτηση C strcmp ()
#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; )
Παραγωγή
strcmp (str1, str2) = 32 strcmp (str1, str3) = 0
Ο πρώτος απαράμιλλης χαρακτήρας μεταξύ των συμβολοσειρών str1 και str2 είναι ο τρίτος χαρακτήρας Η τιμή ASCII του «c» είναι 99 και η τιμή ASCII του «C» είναι 67. Επομένως, όταν συγκρίνονται οι συμβολοσειρές str1 και str2, η τιμή επιστροφής είναι 32.
Όταν συγκρίνονται οι συμβολοσειρές str1 και str3, το αποτέλεσμα είναι 0 επειδή και οι δύο συμβολοσειρές είναι ίδιες.