Πώς να συγκρίνετε συμβολοσειρά σε C ++

How Compare String C



Η σύγκριση συμβολοσειρών είναι μια πολύ συνηθισμένη εργασία για κάθε γλώσσα προγραμματισμού. Χρησιμοποιείται κυρίως για την επικύρωση των δεδομένων, όπως τον έλεγχο του ονόματος χρήστη και του κωδικού πρόσβασης των πληροφοριών σύνδεσης. Η σύγκριση συμβολοσειρών μπορεί να γίνει χρησιμοποιώντας τελεστή σύγκρισης ή χρησιμοποιώντας ενσωματωμένες συναρτήσεις. Δύο συναρτήσεις σύγκρισης συμβολοσειρών που χρησιμοποιούνται στο C ++ είναι, strcmp () και συγκρίνω() Το ο strcmp () είναι μια συνάρτηση βιβλιοθήκης του C για τη σύγκριση δύο συμβολοσειρών. Το γ ompare () είναι μια ενσωματωμένη συνάρτηση του C ++ για σύγκριση δύο συμβολοσειρών. Οι τρόποι σύγκρισης συμβολοσειρών χρησιμοποιώντας τελεστές και συναρτήσεις σύγκρισης έχουν εξηγηθεί σε αυτό το σεμινάριο.

Προαπαιτούμενο:

Πριν ελέγξετε τα παραδείγματα αυτού του σεμιναρίου, πρέπει να ελέγξετε ότι ο μεταγλωττιστής g ++ είναι εγκατεστημένος ή όχι στο σύστημα. Εάν χρησιμοποιείτε Visual Studio Code, εγκαταστήστε τις απαραίτητες επεκτάσεις για να μεταγλωττίσετε τον πηγαίο κώδικα C ++ για να δημιουργήσετε τον εκτελέσιμο κώδικα. Εδώ, η εφαρμογή Visual Studio Code χρησιμοποιήθηκε για τη μεταγλώττιση και την εκτέλεση του κώδικα C ++.







Χρήση του τελεστή σύγκρισης για σύγκριση συμβολοσειράς:

Ο πιο συνηθισμένος τρόπος σύγκρισης συμβολοσειρών στο C ++ είναι ο τελεστής σύγκρισης. Αυτοί είναι ίσοι (==) και όχι ίσοι (! =) Τελεστές. Δημιουργήστε ένα αρχείο C ++ με τον ακόλουθο κώδικα για να συγκρίνετε δύο τιμές συμβολοσειράς χρησιμοποιώντας τον τελεστή σύγκρισης. Σύμφωνα με τον κώδικα, μια διεύθυνση URL θα ληφθεί από τον χρήστη και θα συγκριθεί με άλλες συμβολοσειρές χρησιμοποιώντας έναν ίσο (==) τελεστή. Εάν η τιμή εισόδου ταιριάζει με οποιαδήποτε συμβολοσειρά της συνθήκης 'αν', τότε το συγκεκριμένο μήνυμα θα εκτυπωθεί. Διαφορετικά, θα εμφανιστεί το μήνυμα του μέρους «else».



// Συμπεριλάβετε την απαραίτητη βιβλιοθήκη

#περιλαμβάνω

χρησιμοποιώντας το όνομα χώρου std?

εσωτερική() {
// Δηλώστε μια μεταβλητή συμβολοσειράς
συμβολοσειρά url_addr?
// Λάβετε μια διεύθυνση url από τον χρήστη
κόστοςurl_addr?
// Συγκρίνετε την τιμή εισόδου με μια άλλη συμβολοσειρά χρησιμοποιώντας ισοδύναμο τελεστή
αν(url_addr== 'Google com')
κόστος<<'Είναι μια μηχανή αναζήτησης wensite.'<<endl?
elseif(url_addr== 'jooble.org')
κόστος<<'Είναι ένας ιστότοπος αναζήτησης εργασίας.'<<endl?
elseif(url_addr== 'linuxhint.com')
κόστος<<'Είναι ένας ιστότοπος ιστολογίου.'<<endl?
αλλού
κόστος<<'Δεν προστίθενται πληροφορίες για αυτόν τον ιστότοπο.'<<endl?

επιστροφή0?
}

Παραγωγή:



Μετά την εκτέλεση του κώδικα, εάν ο χρήστης πληκτρολογήσει « linuxhint.com 'Ως είσοδος, θα επιστρέψει η τρίτη συνθήκη' εάν ' Αληθής, και θα εμφανιστεί η ακόλουθη έξοδος.





Χρησιμοποιώντας τη λειτουργία σύγκρισης () για τη σύγκριση συμβολοσειράς:

Η συνάρτηση σύγκρισης () συγκρίνει δύο συμβολοσειρές και επιστρέφει 0 ή 1 ή -1 βάσει του αντίστοιχου αποτελέσματος της σύγκρισης. Η έννοια των τιμών επιστροφής δίνεται παρακάτω.



  • Η συνάρτηση θα επιστρέψει 0 όταν και οι δύο συμβολοσειρές είναι ίσες.
  • Η συνάρτηση θα επιστρέψει 1 όταν η πρώτη συμβολοσειρά είναι μεγαλύτερη από τη δεύτερη συμβολοσειρά.
  • Η συνάρτηση θα επιστρέψει -1 όταν η πρώτη συμβολοσειρά είναι μικρότερη από τη δεύτερη συμβολοσειρά.

Σύνταξη:

intχορδή 1.συγκρίνω(χορδή 2)

Δημιουργήστε ένα αρχείο C ++ με τον ακόλουθο κώδικα για να συγκρίνετε δύο τιμές συμβολοσειράς με δύο τιμές εισόδου χρησιμοποιώντας τη λειτουργία σύγκρισης (). Ο έλεγχος ταυτότητας οποιουδήποτε χρήστη μπορεί να ελεγχθεί συγκρίνοντας τις τιμές που υποβάλλονται από τους χρήστες με τις τιμές του πιστοποιημένου χρήστη. Αυτή η διαδικασία ελέγχου ταυτότητας έχει υλοποιηθεί στον ακόλουθο κώδικα. Η έγκυρη διεύθυνση ηλεκτρονικού ταχυδρομείου και ο κωδικός πρόσβασης έχουν αποθηκευτεί σε δύο μεταβλητές συμβολοσειράς εδώ. Στη συνέχεια, αυτές οι τιμές συγκρίνονται με τη διεύθυνση ηλεκτρονικού ταχυδρομείου και τον κωδικό πρόσβασης που έχει ληφθεί από τον χρήστη χρησιμοποιώντας συγκρίνω () λειτουργία. Το λογικό ΚΑΙ ο τελεστής χρησιμοποιήθηκε στον κώδικα για τον έλεγχο ταυτότητας του χρήστη. Το μήνυμα επιτυχίας θα εκτυπωθεί εάν και οι δύο λειτουργίες σύγκρισης () επιστρέψουν True. Διαφορετικά, θα εκτυπωθεί το μήνυμα αποτυχίας.

// Συμπεριλάβετε την απαραίτητη βιβλιοθήκη

#περιλαμβάνω

χρησιμοποιώντας το όνομα χώρου std?

εσωτερική() {

// Αρχικοποίηση δύο μεταβλητών συμβολοσειράς
string email('[email protected]')?
κωδικός συμβολοσειράς('linuxhint')?
// Δηλώστε δύο μεταβλητές συμβολοσειράς
συμβολοσειρά user_email?
συμβολοσειρά user_password?

// Πάρτε τη διεύθυνση email από τον χρήστη
κόστοςuser_email?

// Πάρτε τον κωδικό πρόσβασης από τον χρήστη
κόστοςΚωδικός Χρήστη?

// Ελέγξτε το όνομα χρήστη και αν ο κωδικός πρόσβασης είναι έγκυρος ή άκυρος
αν (user_email.συγκρίνω(ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ) == 0&&Κωδικός Χρήστη.συγκρίνω(Κωδικός πρόσβασης) == 0 )
κόστος<<'Επιτυχής έλεγχος ταυτότητας.'<<endl?
αλλού
κόστος<<'Το email ή ο κωδικός πρόσβασης δεν είναι έγκυρα.'<<endl?

επιστροφή0?
}

Παραγωγή:

Μετά την εκτέλεση του κώδικα, εάν ο χρήστης πληκτρολογήσει « [προστασία ηλεκτρονικού ταχυδρομείου] «Ως διεύθυνση ηλεκτρονικού ταχυδρομείου και» 12345 'Ως κωδικός πρόσβασης, θα επιστρέψει η τρίτη συνθήκη' εάν ' Ψευδής, και θα εμφανιστεί η ακόλουθη έξοδος.

Αφού εκτελέσετε ξανά τον κώδικα, εάν ο χρήστης πληκτρολογήσει « [προστασία ηλεκτρονικού ταχυδρομείου] «Ως διεύθυνση ηλεκτρονικού ταχυδρομείου και» linuxhint 'Ως κωδικός πρόσβασης, θα επιστρέψει η τρίτη συνθήκη' εάν ' Αληθής, και θα εμφανιστεί η ακόλουθη έξοδος.

Χρησιμοποιώντας τη συνάρτηση strcmp () για σύγκριση συμβολοσειράς:

Το strcmp () είναι μια άλλη συνάρτηση για τη σύγκριση συμβολοσειρών στο C ++. Εμφανίζεται true αν και οι δύο συμβολοσειρές είναι ίσες. Οι παράμετροι εισόδου που λαμβάνει αυτή η συνάρτηση είναι διαφορετικές από τη λειτουργία σύγκρισης (). Η συνάρτηση σύγκρισης λαμβάνει μια τιμή συμβολοσειράς ως παράμετρο και η συνάρτηση strcmp () παίρνει τον πίνακα char ως παράμετρο. Η σύνταξη αυτής της συνάρτησης δίνεται παρακάτω.

Σύνταξη:

int strcmp ( const απανθρακώνω *str1, const απανθρακώνω *str2)?

Δημιουργήστε ένα αρχείο C ++ με τον ακόλουθο κώδικα για να συγκρίνετε δύο συμβολοσειρές χρησιμοποιώντας τη συνάρτηση strcmp (). Δύο πίνακες χαρακτήρων από 100 στοιχεία έχουν δηλωθεί στον κώδικα για να αποθηκεύσουν τις τιμές συμβολοσειράς που έχουν ληφθεί από τους χρήστες. ο getline () η συνάρτηση χρησιμοποιείται για την αποθήκευση της εισόδου του χρήστη στις μεταβλητές του πίνακα char. Στη συνέχεια, το strcmp () η συνάρτηση έχει χρησιμοποιηθεί για να ελέγξει ότι οι τιμές εισόδου είναι ίσες ή όχι. Εάν επιστρέψει η συνάρτηση Αληθής, τότε το μήνυμα επιτυχίας θα εκτυπωθεί. Διαφορετικά, το μήνυμα αποτυχίας θα εκτυπωθεί,

// Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες

#περιλαμβάνω

#περιλαμβάνω

χρησιμοποιώντας το όνομα χώρου std?

εσωτερική() {
// Καθυστέρηση δύο μεταβλητών συμβολοσειράς
απανθρακώνωchrData1[100],chrData2[100]?

// Πάρτε τα πρώτα δεδομένα συμβολοσειράς
κόστος<<'Εισαγάγετε την πρώτη συμβολοσειρά:'?
τζιν.getline(chrData1, 100)?
// Πάρτε τα δεδομένα δεύτερης συμβολοσειράς
κόστος<<'Εισαγάγετε τη δεύτερη συμβολοσειρά:'?
τζιν.getline(chrData2, 100)?

αν ( strcmp (chrData1,chrData2)==0)
printf («Οι χορδές είναι ίσες n')?
αλλού
printf («Οι χορδές δεν είναι ίσες n')?

επιστροφή0?
}

Παραγωγή:

Μετά την εκτέλεση του κώδικα, η τιμή συμβολοσειράς, ‘ γεια σας 'Δίνεται και για τις δύο τιμές εισόδου και θα εμφανιστεί η ακόλουθη έξοδος.

Συμπέρασμα:

Τρεις τρόποι σύγκρισης συμβολοσειρών σε C ++ έχουν παρουσιαστεί σε αυτό το σεμινάριο χρησιμοποιώντας τρία απλά παραδείγματα. Τόσο οι χρήσεις του τελεστή σύγκρισης όσο και οι ενσωματωμένες συναρτήσεις για τον έλεγχο της ισότητας των συμβολοσειρών έχουν περιγραφεί σε αυτό το σεμινάριο για να βοηθήσουν τους νέους προγραμματιστές C ++.