Πώς να χρησιμοποιήσετε τη συνάρτηση find_first_of () στο C ++

How Use Find_first_of Function C



Υπάρχουν διαφορετικές ενσωματωμένες συναρτήσεις στο C ++ για να λειτουργούν με τα δεδομένα συμβολοσειράς. ο find_first_of () Η συνάρτηση χρησιμοποιείται για τον εντοπισμό της θέσης της πρώτης εμφάνισης του καθορισμένου χαρακτήρα. Αυτή η συνάρτηση επιστρέφει τη θέση της πρώτης εμφάνισης της συμβολοσειράς που θα δοθεί ως τιμή ορίσματος αυτής της συνάρτησης. Διαφορετικές χρήσεις αυτής της συνάρτησης για την αναζήτηση της συμβολοσειράς σε C ++ έχουν εξηγηθεί σε αυτό το σεμινάριο.

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

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







Χαρακτηριστικά της συνάρτησης find_first_of ()

ο find_first_of () συνάρτηση μπορεί να επιστρέψει διαφορετικούς τύπους μεταβλητών με βάση την τιμή του πρώτου ορίσματος. Θα επιστρέψει τη θέση αναζήτησης της συμβολοσειράς εάν η πρώτη τιμή ορίσματος είναι μια συμβολοσειρά. Θα επιστρέψει τη θέση αναζήτησης της συμβολοσειράς χαρακτήρων εάν ο δείκτης σε μια σειρά χαρακτήρων δίνεται στο πρώτο όρισμα. Θα επιστρέψει τη θέση buffer εάν δοθεί η τιμή του τρίτου ορίσματος. Θα επιστρέψει τη θέση χαρακτήρα εάν ένας χαρακτήρας δοθεί στο πρώτο όρισμα και υπάρχει στην κύρια συμβολοσειρά. Η αρχική θέση της αναζήτησης ορίζεται στο δεύτερο όρισμα αυτής της συνάρτησης. Η διαφορετική σύνταξη αυτής της συνάρτησης δίνεται παρακάτω.



Σύνταξη

string size_t find_first_of (const string & str, size_t pos = 0) const;
c-string size_t find_first_of (const char* s, size_t pos = 0) const;
buffer size_t find_first_of (const char* s, size_t pos, size_t n) const;
χαρακτήρας size_t find_first_of (char c, size_t pos = 0) const;



Παράδειγμα 1: Αναζήτηση και αντικατάσταση του συγκεκριμένου χαρακτήρα μιας συμβολοσειράς

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





// Συμπεριλάβετε για την εκτύπωση της εξόδου
#περιλαμβάνω
// Συμπεριλάβετε για τη χρήση του size_t
#περιλαμβάνω

intκύριος()
{
// Αρχικοποίηση μεταβλητής συμβολοσειράς
ώρες::σειράstrData('Καλώς ορίσατε στο LinuxHint')?
// Εκτυπώστε την αρχική συμβολοσειρά
ώρες::κόστος << 'Η αρχική συμβολοσειρά είναι:' +strData<< ' n'?
// Μάθετε όλη τη θέση του χαρακτήρα 'i'
ώρες::μέγεθος_τsearchList=strData.find_first_of('Εγώ')?
// Επαναλάβετε τον βρόχο για να αντικαταστήσετε όλα τα 'i' με '@'
ενώ (searchList!=ώρες::σειρά::npos)
{
strData[searchList] = '@'?
searchList=strData.find_first_of('Εγώ', SearchList+1)?
}
// Εκτύπωση της τροποποιημένης συμβολοσειράς
ώρες::κόστος << 'Η τροποποιημένη συμβολοσειρά είναι:' +strData<< ' n'?

ΕΠΙΣΤΡΟΦΗ 0?
}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα.



Παράδειγμα 2: Αναζήτηση στην πρώτη θέση των χαρακτήρων αναζήτησης

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

// Συμπεριλάβετε για την εκτύπωση της εξόδου
#περιλαμβάνω

intκύριος()
{
// Αρχικοποίηση της μεταβλητής συμβολοσειράς
ώρες::σειράstrData( «Βασικός προγραμματισμός C ++»)?
// Δηλώστε τη μεταβλητή interger για να αποθηκεύσετε τη θέση
intθέση?
// Αναζήτηση στον χαρακτήρα 'C ++'
θέση=strData.find_first_of( 'K ++' )?
// Ελέγξτε την τιμή της θέσης
αν (θέση> = 0)
{
// Εκτυπώστε τη θέση αν βρεθεί οποιοσδήποτε χαρακτήρας
ώρες::κόστος << 'Ο χαρακτήρας '' <<strData[θέση]
<< '' έχει βρει' << «στη θέση» <<θέση<< ' n'?
}

ΕΠΙΣΤΡΟΦΗ 0?
}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα. Εδώ, ο χαρακτήρας, « + Της χορδής, Κ ++ Βρήκε στη θέση, 7 της κύριας χορδής, « Βασικός προγραμματισμός C ++ '.

Παράδειγμα 3: Αναζήτηση συγκεκριμένου χαρακτήρα μετά τη συγκεκριμένη θέση

Δημιουργήστε ένα αρχείο C ++ με τον ακόλουθο κώδικα για να αναζητήσετε έναν συγκεκριμένο χαρακτήρα μετά τη συγκεκριμένη θέση. Τα δεδομένα συμβολοσειράς αποθηκεύονται στη μεταβλητή συμβολοσειράς και μια συγκεκριμένη συμβολοσειρά πραγματοποιείται αναζήτηση μετά τη θέση, 13. Εάν κάποιος χαρακτήρας της συμβολοσειράς αναζήτησης έχει βρεθεί στην κύρια συμβολοσειρά, τότε θα επιστρέψει μια τιμή θέσης.

// Συμπεριλάβετε για την εκτύπωση της εξόδου
#περιλαμβάνω

intκύριος()
{
// Αρχικοποίηση μεταβλητής συμβολοσειράς
ώρες::σειράstrData= «Φάε για να ζήσεις, όχι για να φας»?
// Εκτυπώστε την αρχική συμβολοσειρά
ώρες::κόστος << 'Η αρχική συμβολοσειρά είναι:' +strData<< ' n'?
// Εκτυπώστε τη θέση όπου βρέθηκε ο τελευταίος χαρακτήρας
ώρες::κόστος<<'Ο τελευταίος χαρακτήρας που ταιριάζει βρέθηκε στη θέση:'
<<strData.find_first_of('στο',13) << ' n'?
ΕΠΙΣΤΡΟΦΗ 0?
}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα. Εδώ, ο χαρακτήρας, « προς το Της χορδής, στο Βρήκε στη θέση, δεκαπέντε της κύριας χορδής, « φάτε για να ζήσετε, όχι για να φάτε '.

Παράδειγμα 4: Αναζήτηση της θέσης του πρώτου αριθμού αντιστοίχισης

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

// Συμπεριλάβετε για την εκτύπωση της εξόδου
#περιλαμβάνω
// Συμπεριλάβετε για αναζήτηση δεδομένων στο διάνυσμα
#περιλαμβάνω
// Συμπερίληψη για χρήση διανυσματικών δεδομένων
#περιλαμβάνω

intκύριος()
{
// Δήλωση λίστας δύο διανυσμάτων
ώρες::διάνυσμαλίστα 1{10,5,65,31,7}?
ώρες::διάνυσμαλίστα 2{2,77,5,38,32,55}?
// Αναζητήστε τα δεδομένα της λίστας1 στη λίστα2
αυτοπαραγωγή=ώρες::find_first_of(λίστα 1.να αρχίσει(), λίστα 1.τέλος(), λίστα 2.να αρχίσει(), λίστα 2.τέλος())?
// Διαβάστε τη θέση του αριθμού που ταιριάζει
intθέση=ώρες::απόσταση(λίστα 1.να αρχίσει(), έξοδος)?

// Ελέγξτε οποιονδήποτε αριθμό λίστας1 ταιριάζει με οποιονδήποτε αριθμό λίστας2
αν (παραγωγή<λίστα 1.τέλος()) {
ώρες::κόστος << 'Ο πρώτος αριθμός που ταιριάζει' <<λίστα 1[θέση] << «βρέθηκε στη θέση» <<θέση<< ' n'?
}
αλλού {
ώρες::κόστος << 'Δεν βρέθηκε αντίστοιχος αριθμός. n'?
}
}

Παραγωγή:

Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω κώδικα. Η τιμή αριθμού, 5 του πρώτου πίνακα, υπάρχει στη δεύτερη συστοιχία και η θέση αυτού του αριθμού είναι 1.

συμπέρασμα

Η συνάρτηση find_first_of () μπορεί να χρησιμοποιηθεί για την αναζήτηση ενός χαρακτήρα ή αριθμού για διάφορους σκοπούς προγραμματισμού. Αυτή η συνάρτηση μπορεί να χρησιμοποιηθεί για την επίλυση των διαφόρων προβλημάτων αναζήτησης. Ελπίζω ότι ο προγραμματιστής C ++ θα μπορεί να χρησιμοποιήσει σωστά αυτήν τη λειτουργία αφού διαβάσει αυτό το σεμινάριο.