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

How Use Substr Function C



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

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

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







Σύνταξη

string substr (size_t pos = 0, size_t len ​​= npos) const;



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



Παράδειγμα 1: Απλή χρήση του substr ()

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





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


intκύριος() {
// Ορισμός μεταβλητής συμβολοσειράς
ώρες::σειράoriginalstr='Καλώς ορίσατε στο Linuxhint'?
// Κόψτε την δευτερεύουσα συμβολοσειρά χρησιμοποιώντας το substr ()
ώρες::σειράnewstr=originalstr.υποστ (έντεκα,9)?
// Εκτυπώστε την αρχική συμβολοσειρά
ώρες::κόστος <<'Η αρχική συμβολοσειρά είναι:' <<originalstr<< ' n'?
// Εκτύπωση της δευτερεύουσας συμβολοσειράς
ώρες::κόστος <<'Η υποχορδή είναι:' <<newstr<< ' n'?

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

Παραγωγή:

Σύμφωνα με τον κώδικα, η αρχική συμβολοσειρά είναι « Καλώς ορίσατε στο LinuxHint ‘. Το 11 έχει δώσει ως αρχική θέση της δευτερεύουσας συμβολοσειράς τη θέση του χαρακτήρα 'L' και το 9 έχει δώσει ως τιμή μήκους της υπο-συμβολοσειράς. ' LinuxHint ‘Έχει επιστρέψει ως έξοδος της συνάρτησης substr () μετά την εκτέλεση του κώδικα.



Παράδειγμα 2: Χρήση του substr () με βάση τη θέση μιας συγκεκριμένης συμβολοσειράς

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

// Συμπεριλάβετε τις απαραίτητες βιβλιοθήκες
#περιλαμβάνω
#περιλαμβάνω
χρησιμοποιώντας ονομαστικου χωρουώρες?

intκύριος()
{
ώρες::σειράstrData= 'Μου αρέσει ο προγραμματισμός C ++'?

// Ας βρούμε τη θέση του '-' χρησιμοποιώντας το str.find ()
intθέση=strData.εύρημα('προγραμματισμός')?

// Θα λάβουμε την υπο -συμβολοσειρά μέχρι αυτό το μοτίβο
ώρες::σειράnewstr=strData.υποστ(0, θέση)?

ώρες::κόστος <<strData<< ' n'?
ώρες::κόστος <<newstr<< ' n'?

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

Παραγωγή:

Σύμφωνα με τον κώδικα, η κύρια τιμή συμβολοσειράς είναι, Μου αρέσει ο προγραμματισμός C ++ και η τιμή της συμβολοσειράς αναζήτησης είναι, ' προγραμματισμός' που υπάρχει στην κύρια συμβολοσειρά. Άρα, η έξοδος είναι, Μου αρέσει το C ++ «Μετά την εκτέλεση του κώδικα.

Παράδειγμα 3: Χρήση substr () με εξαίρεση το χειρισμό

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

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

intκύριος() {
προσπαθήστε{

// Ορισμός μεταβλητής συμβολοσειράς
ώρες::σειράoriginalstr='Linuxhint'?
// Κόψτε την δευτερεύουσα συμβολοσειρά χρησιμοποιώντας το substr ()
ώρες::σειράnewstr=originalstr.υποστ (έντεκα,9)?
// Εκτύπωση της δευτερεύουσας συμβολοσειράς
ώρες::κόστος <<'Η υποχορδή είναι:' <<newstr<< ' n'?
}
σύλληψη (constώρες::εκτός εμβέλειας) {
ώρες::cerr << «Η θέση είναι εκτός εμβέλειας. n'?
}
ΕΠΙΣΤΡΟΦΗ 0?
}

Παραγωγή:

Σύμφωνα με τον κώδικα, η κύρια τιμή συμβολοσειράς είναι, LinuxHint και η τιμή της αρχικής θέσης είναι 11 που δεν υπάρχει. Έτσι, δημιουργήθηκε η εξαίρεση και το μήνυμα σφάλματος εκτυπώθηκε μετά την εκτέλεση του κώδικα.

Παράδειγμα 4: Χρησιμοποιώντας το substr () για να χωρίσετε τη συμβολοσειρά

Το ακόλουθο παράδειγμα δείχνει τη χρήση της συνάρτησης substr () για να χωρίσει μια συμβολοσειρά με βάση έναν οριοθέτη. Η συνάρτηση find () χρησιμοποιήθηκε για την αναζήτηση της θέσης οριοθέτησης και η λειτουργία διαγραφής () χρησιμοποιήθηκε για την αφαίρεση της χωρισμένης συμβολοσειράς με τον οριοθέτη από την κύρια συμβολοσειρά. Ο βρόχος 'while' χρησιμοποιείται για να βρει όλες τις θέσεις του οριοθέτη στην κύρια συμβολοσειρά και να αποθηκεύσει την κατανεμημένη τιμή στον διανυσματικό πίνακα. Στη συνέχεια, έχουν εκτυπωθεί οι τιμές του διανυσματικού πίνακα.

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

intκύριος(){
// Ορίστε τη συμβολοσειρά
ώρες::σειράstringData= 'PHP: C ++: Python:'?
// Ορίστε το διαχωριστικό
ώρες::σειράδιαχωριστής= ':'?
// Δηλώστε τη διανυσματική μεταβλητή
ώρες::διάνυσμαΓλώσσες{}?
// Δήλωση ακέραιης μεταβλητής
intθέση?
// Δήλωση μεταβλητής συμβολοσειράς
ώρες::σειράoutstr?
/ *
Διαχωρίστε τη συμβολοσειρά χρησιμοποιώντας τη συνάρτηση substr ()
και προσθέτοντας τη διαχωρισμένη λέξη στο διάνυσμα
* /

ενώ ((θέση=stringData.εύρημα(διαχωριστής)) !=ώρες::σειρά::npos) {
Γλώσσες.push_back(stringData.υποστ(0, θέση))?
stringData.εξάλειψη(0, θέση+διαχωριστής.μήκος())?
}
// Εκτυπώστε όλες τις χωρισμένες λέξεις
Για (const αυτο &outstr:Γλώσσες) {
ώρες::κόστος <<outstr<<ώρες::endl?
}
ΕΠΙΣΤΡΟΦΗ 0?
}

Παραγωγή:

Σύμφωνα με τον κώδικα, η κύρια τιμή συμβολοσειράς είναι PHP: C ++: Python και η τιμή του οριοθέτη είναι, ' : ' Το Η ακόλουθη έξοδος θα εμφανιστεί μετά την εκτέλεση του παραπάνω σεναρίου.

συμπέρασμα

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