Η σύγκριση μηκών συμβολοσειράς είναι μια συνήθης συνάρτηση στον προγραμματισμό C, επειδή μπορεί να σας πει ποια συμβολοσειρά έχει περισσότερους χαρακτήρες. Αυτή η συνάρτηση είναι πολύ χρήσιμη για την ταξινόμηση δεδομένων. Η σύγκριση συμβολοσειρών απαιτεί μια ειδική λειτουργία. μην χρησιμοποιείτε! = ή ==.
Βήμα
Βήμα 1. Υπάρχουν 2 τύποι συναρτήσεων που μπορείτε να χρησιμοποιήσετε για να συγκρίνετε συμβολοσειρές στη γλώσσα C
Και οι δύο αυτές λειτουργίες περιλαμβάνονται στη βιβλιοθήκη.
- strcmp (): Αυτή η συνάρτηση συγκρίνει δύο συμβολοσειρές και επιστρέφει το αποτέλεσμα της σύγκρισης του αριθμού των χαρακτήρων μεταξύ τους.
- strncmp (): Αυτή η συνάρτηση είναι ίδια με την strcmp (), εκτός από το ότι συγκρίνει τους πρώτους n} χαρακτήρες στη συμβολοσειρά. Αυτή η λειτουργία θεωρείται ασφαλέστερη επειδή εμποδίζει το πρόγραμμα να σταματήσει λόγω υπερφόρτωσης.
Βήμα 2. Εκτελέστε το πρόγραμμα με τις βιβλιοθήκες που χρειάζεστε
Σας συνιστούμε να εκτελέσετε και, μαζί με άλλες βιβλιοθήκες που χρειάζεστε για ένα συγκεκριμένο πρόγραμμα.
#συμπεριλάβω #συμπεριλάβω
Βήμα 3. Εκτελέστε μια συνάρτηση
int Αυτός είναι ο ευκολότερος τρόπος εκμάθησης αυτής της συνάρτησης, επειδή επιστρέφει την ακέραιη τιμή μιας σύγκρισης του αριθμού των χαρακτήρων σε δύο συμβολοσειρές.
#include #include int main () {}
Βήμα 4. Ορίστε τις δύο συμβολοσειρές που θέλετε να συγκρίνετε
Για παράδειγμα, θα συγκρίνουμε 2 συμβολοσειρές δεδομένων τύπου char που έχουν οριστεί προηγουμένως. Μπορείτε επίσης να ορίσετε την τιμή που επιστρέφει αυτή η συνάρτηση για να έχει ακέραιο τον τύπο δεδομένων.
#include #include int main () {char *str1 = "μήλο"; char *str2 = "πορτοκαλί"; int ret? }
Βήμα 5. Προσθέστε τη λειτουργία σύγκρισης
Αφού ορίσετε αυτές τις δύο συμβολοσειρές, μπορείτε να προσθέσετε μια λειτουργία σύγκρισης. Θα χρησιμοποιούμε strncmp (), οπότε θα πρέπει να βεβαιωθούμε ότι ο αριθμός των χαρακτήρων που πρέπει να μετρηθούν έχει ρυθμιστεί στη συνάρτηση.
#include #include int main () {char *str1 = "μήλο"; char *str2 = "πορτοκαλί"; int ret? ret = strncmp (str1, str2, 6); / *Αυτή η λειτουργία θα συγκρίνει και τις δύο "συμβολοσειρές" 6 χαρακτήρων */}
Βήμα 6. Χρησιμοποιήστε δηλώσεις
Αν… Αλλιώς να κάνετε τη σύγκριση. Αφού προσθέσετε μια συνάρτηση στο πρόγραμμά σας, μπορείτε να χρησιμοποιήσετε μια δήλωση για να εμφανίσετε ποια συμβολοσειρά έχει περισσότερους χαρακτήρες. Το strncmp () θα επιστρέψει 0 αν οι συμβολοσειρές έχουν τον ίδιο αριθμό χαρακτήρων, έναν θετικό αριθμό εάν το str1 είναι μεγαλύτερο και έναν αρνητικό αριθμό εάν το str2 είναι μεγαλύτερο.
#include #include int main () {char *str1 = "μήλο"; char *str2 = "πορτοκαλί"; int ret? ret = strncmp (str1, str2, 6); if (ret> 0) {printf ("το str1 είναι μεγαλύτερο"); } else if (ret <0) {printf ("το str2 είναι μεγαλύτερο"); } else {printf ("Και οι δύο συμβολοσειρές έχουν το ίδιο μήκος"); } επιστροφή (0); }