Πώς να συγκρίνετε δύο συμβολοσειρές στη γλώσσα προγραμματισμού C

Συγγραφέας: William Ramirez
Ημερομηνία Δημιουργίας: 18 Σεπτέμβριος 2021
Ημερομηνία Ενημέρωσης: 1 Ιούλιος 2024
Anonim
H ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 2 - ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ C - ΘΕΩΡΙΑ 1 από 3
Βίντεο: H ΓΛΩΣΣΑ C - ΜΑΘΗΜΑ 2 - ΒΑΣΙΚΑ ΣΤΟΙΧΕΙΑ ΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΟΣ C - ΘΕΩΡΙΑ 1 από 3

Περιεχόμενο

Είναι πολύ συνηθισμένο στον κώδικα C να συγκρίνουμε μήκη συμβολοσειράς για να μάθουμε ποια συμβολοσειρά περιέχει περισσότερους χαρακτήρες. Αυτό είναι χρήσιμο για τη διαλογή δεδομένων. Απαιτείται ειδική λειτουργία για τη σύγκριση συμβολοσειρών - μην χρησιμοποιείτε != ή ==.

Βήματα

  1. 1 Η γλώσσα προγραμματισμού C περιλαμβάνει δύο συναρτήσεις που μπορείτε να χρησιμοποιήσετε για να συγκρίνετε μήκη συμβολοσειράς. Και οι δύο αυτές λειτουργίες περιλαμβάνονται στη βιβλιοθήκη string.h>.
    • strcmp () - αυτή η συνάρτηση συγκρίνει δύο συμβολοσειρές και επιστρέφει τη διαφορά στον αριθμό των χαρακτήρων.
    • strncmp () - αυτή η λειτουργία είναι η ίδια με αυτήν strcmp () εκτός από το πρώτο ν χαρακτήρες. Θεωρείται πιο ασφαλές επειδή αποφεύγει τις αστοχίες υπερχείλισης.
  2. 2 Ξεκινήστε το πρόγραμμα με τις απαιτούμενες βιβλιοθήκες. Θα χρειαστείτε βιβλιοθήκες stdio.h> και string.h>καθώς και κάθε άλλη βιβλιοθήκη που απαιτείται για το συγκεκριμένο πρόγραμμά σας.

    #include stdio.h> #include string.h>

  3. 3 Εισαγάγετε τη λειτουργία int. Επιστρέφει έναν ακέραιο ως αποτέλεσμα της σύγκρισης του μήκους δύο συμβολοσειρών.

    #include stdio.h> #include string.h> int main () {}

  4. 4 Προσδιορίστε τις δύο συμβολοσειρές που θέλετε να συγκρίνετε. Στο παράδειγμά μας, ας συγκρίνουμε δύο συμβολοσειρές τύπου απανθρακώνω... Ορίστε επίσης την τιμή επιστροφής ως ακέραιο.

    #include stdio.h> #include string.h> int main () {char * str1 = "μήλο"; char * str2 = "πορτοκαλί"; int ret? }

  5. 5 Εισαγάγετε μια λειτουργία σύγκρισης. Στο παράδειγμά μας, θα χρησιμοποιήσουμε τη συνάρτηση strncmp ()... Σε αυτό πρέπει να ορίσετε τον αριθμό των μετρημένων χαρακτήρων.

    #include stdio.h> #include string.h> int main () {char * str1 = "μήλο"; char * str2 = "πορτοκαλί"; int ret? ret = strncmp (str1, str2, 8); / * Συγκρίνει δύο συμβολοσειρές έως 8 χαρακτήρες * /}

  6. 6 Εισαγάγετε μια δήλωση υπό όρους Αν... Αλλιώς. Είναι απαραίτητο για να δείξει ποια γραμμή είναι μεγαλύτερη. Λειτουργία strncmp () θα επιστρέψει τον αριθμό 0εάν τα μήκη των συμβολοσειρών είναι τα ίδια, ένας θετικός αριθμός εάν το str1 είναι μεγαλύτερο και ένας αρνητικός αριθμός εάν το str2 είναι μεγαλύτερο.

    #include stdio.h> #include string.h> int main () {char * str1 = "μήλο"; char * str2 = "πορτοκαλί"; int ret? ret = strncmp (str1, str2, 8); if (ret> 0) {printf ("το str1 είναι μεγαλύτερο"); } else if (ret 0) {printf ("το str2 είναι μεγαλύτερο"); } else {printf ("Τα μήκη γραμμών είναι ίσα"); } επιστροφή (0); }

Προειδοποιήσεις

  • Θυμηθείτε ότι εάν τα μήκη των συμβολοσειρών είναι ίσα, η τιμή 0. θα επιστρέψει. Αυτό μπορεί να προκαλέσει σύγχυση επειδή το 0 είναι επίσης ΛΑΘΟΣ.