Πώς να χρησιμοποιήσετε την κλάση συμβολοσειράς C ++

How Use C String Class



Μια συμβολοσειρά κυριολεκτική είναι μια ακολουθία χαρακτήρων σε έναν δείκτη σταθερού πίνακα που τερματίζεται από τον χαρακτήρα nul, 0. Όταν προσδιορίζεται, από μια μεταβλητή, η συμβολοσειρά κυριολεκτικά δεν μπορεί πραγματικά να μειώσει ή να αυξήσει το μήκος. Πολλές λειτουργίες δεν μπορούν να γίνουν στην συμβολοσειρά κυριολεκτικά. Έτσι, υπάρχει ανάγκη για μια κλάση συμβολοσειράς. Η κλάση συμβολοσειράς C ++ είναι για μια δομή δεδομένων, μια συλλογή χαρακτήρων σε σειρά, η οποία επιτρέπει στις συναρτήσεις μελών και στους τελεστές να ενεργούν με τους χαρακτήρες. Η κλάση συμβολοσειράς επιτρέπει περισσότερους χειρισμούς στην αντίστοιχη κυριολεκτική συμβολοσειρά, παρά μόνο την κυριολεκτική συμβολοσειρά. Για να καταλάβετε αυτό το άρθρο, πρέπει να έχετε καλή γνώση του string literal.

Τάξη και Αντικείμενα

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







Το όνομα, συμβολοσειρά, είναι κλάση. Ένα αντικείμενο που δημιουργήθηκε από την κλάση συμβολοσειρών έχει ένα όνομα προγραμματιστή που έχει επιλεγεί.



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



Η δημιουργία ενός αντικειμένου από μια κλάση σημαίνει την κατασκευή του αντικειμένου. σημαίνει επίσης ενσάρκωση.





Ένα πρόγραμμα C ++ που χρησιμοποιεί την κλάση συμβολοσειράς, ξεκινά με τις ακόλουθες γραμμές στο επάνω μέρος του αρχείου:

#περιλαμβάνω
#περιλαμβάνω
χρησιμοποιώντας το όνομα χώρου std?

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



Υπερφόρτωση μιας λειτουργίας

Όταν δύο ή περισσότερες διαφορετικές υπογραφές συνάρτησης έχουν το ίδιο όνομα, αυτό το όνομα λέγεται ότι είναι υπερφορτωμένο. Όταν καλείται μία συνάρτηση, ο αριθμός και ο τύπος των ορισμάτων, καθορίζουν ποια συνάρτηση εκτελείται.

Κατασκευή

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

string strCol=σειρά()?

Αρχίζει με το όνομα της κλάσης (τύπος αντικειμένου), συμβολοσειρά. Ακολουθεί το όνομα για τη συμβολοσειρά αντικειμένου, που δόθηκε από τον προγραμματιστή. Ακολουθεί ο τελεστής εκχώρησης. τότε το όνομα του κατασκευαστή με κενές παρενθέσεις. Εδώ, το strCol είναι το στιγμιαίο αντικείμενο με όλα τα μέλη δεδομένων (ιδιότητες) και τις συναρτήσεις μελών (μεθόδους).
συμβολοσειρά (str)
Αυτό είναι παρόμοιο με το παραπάνω, αλλά παίρνει είτε μια συμβολοσειρά κυριολεκτική είτε ένα αναγνωριστικό ως όρισμα, στον κατασκευαστή. Η παρακάτω δήλωση το αποδεικνύει:

string strCol=σειρά('Σε αγαπώ')?

Κατασκευή με λίστα αρχικοποίησης

Ο παρακάτω κώδικας το δείχνει αυτό:

string strCol=σειρά({'ΕΓΩ','','ο','ή','v','Και','','και','ή','εσύ',' 0'})?

Η χορδή κυριολεκτικά είναι σ 'αγαπώ. Σημειώστε τον χαρακτήρα nul στο τέλος της λίστας προετοιμασίας.

συμβολοσειρά (str, n)

Αυτό σχηματίζει μια συλλογή συμβολοσειρών, των πρώτων n χαρακτήρων μιας άλλης συμβολοσειράς. Ο παρακάτω κώδικας το δείχνει αυτό:

απανθρακώνωΠ[] = 'Σε αγαπώ'?
string strCol=σειρά(Π, 6)?
κόστος<<strCol<< ' n'?

Το αποτέλεσμα είναι I love with the first 6 characters from I love you. Θυμηθείτε: ο ενιαίος χώρος είναι ένας χαρακτήρας.

συμβολοσειρά (str, pos, n)

Αυτό σχηματίζει μια συλλογή συμβολοσειρών n χαρακτήρων, ξεκινώντας από τη μηδενισμένη θέση ευρετηρίου, pos, μιας άλλης συμβολοσειράς. Ο παρακάτω κώδικας το δείχνει αυτό:

απανθρακώνωΠ[] = 'Σε αγαπώ'?
string strCol=σειρά(Π, 2, 4)?
κόστος<<strCol<< ' n'?

Το αποτέλεσμα είναι, αγάπη.

Για τις δύο παραπάνω περιπτώσεις, εάν το n είναι μεγαλύτερο από το μέγεθος της συμβολοσειράς, η εξαίρεση out_of_range ρίχνεται - δείτε αργότερα.

συμβολοσειρά (n, ‘c’)

Σχηματίζει μια συλλογή από n χαρακτήρες, όπου όλοι οι χαρακτήρες είναι ίδιοι. Σκεφτείτε,

string strCol=σειρά(5,'Και')?
κόστος<<strCol<< ' n'?

Η έξοδος είναι, εεεε, 5 ε.

Εκχώρηση συμβολοσειράς

Μια συμβολοσειρά μπορεί να εκχωρηθεί ως εξής, αφού δηλώσει και τις δύο συμβολοσειρές:

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2?
strCol2=strCol1?
κόστος<<strCol2<< ' n'?

Το αποτέλεσμα είναι, σ 'αγαπώ.

Κατασκευή με Iterator

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

πρότυπο<class InputIterator>>
βασική_χορδή(Έναρξη InputIterator,Τέλος InputIterator, constΚατανεμητής&
προς το=Κατανεμητής())?

Αυτό δημιουργεί μια συμβολοσειρά για το εύρος [αρχή, τέλος] - δείτε λεπτομέρειες αργότερα.

Καταστρέφοντας μια συμβολοσειρά

Για να καταστρέψετε μια συμβολοσειρά, απλώς αφήστε την να βγει εκτός εμβέλειας.

Πρόσβαση στοιχείου κατηγορίας συμβολοσειράς

Ένα αντικείμενο στιγμιαίας συμβολοσειράς μπορεί να υπογραφεί (ευρετηριαστεί) όπως ένας πίνακας. Η καταμέτρηση του δείκτη ξεκινά από το μηδέν.

stringName [i]

Το stringName [i] επιστρέφει μια αναφορά στον χαρακτήρα (στοιχείο) στο iουευρετήριο της συλλογής χαρακτήρων. Ο ακόλουθος κώδικας εξάγει v:

string strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol[4]?
κόστος<<κεφ<< ' n'?

stringName [i] const

Η λειτουργία stringName [i] const εκτελείται αντί για stringName [i] όταν το αντικείμενο συμβολοσειράς είναι σταθερό αντικείμενο. Χρησιμοποιείται για παράδειγμα στον ακόλουθο κώδικα:

conststring strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol[4]?
κόστος<<κεφ<< ' n'?

Η έκφραση επιστρέφει μια σταθερή αναφορά στο iουστοιχείο του αντικειμένου συμβολοσειράς. Κανένα από τα στοιχεία της συμβολοσειράς δεν μπορεί να αλλάξει.

Αντιστοίχιση Χαρακτήρα με Υπογραφή

Ένας χαρακτήρας μπορεί να εκχωρηθεί σε ένα μη σταθερό αντικείμενο συμβολοσειράς, ως εξής:

string strCol=σειρά('Τηλεφωνώ')?
strCol[2] = 'φά'?
κόστος<<strCol<< ' n'?

Η έξοδος είναι I fall. Το «c» άλλαξε σε «f».

stringName.at (i)

Το stringName.at (i) είναι παρόμοιο με το stringName [i], αλλά το stringName.at (i) είναι πιο αξιόπιστο. Ο παρακάτω κώδικας δείχνει πώς πρέπει να χρησιμοποιείται:

string strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.στο(4)?
κόστος<<κεφ<< ' n'?

Το () είναι στην πραγματικότητα μια συνάρτηση μέλους κλάσης συμβολοσειράς.

stringName.at (i) const

stringName.at (i) const είναι παρόμοιο με το stringName [i] const, αλλά το stringName.at (i) const είναι πιο αξιόπιστο. stringName.at (i) const εκτελείται αντί για stringName.at (i) όταν το αντικείμενο συμβολοσειράς είναι ένα σταθερό αντικείμενο συμβολοσειράς. Χρησιμοποιείται στον ακόλουθο κώδικα, για παράδειγμα:

conststring strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.στο(4)?
κόστος<<κεφ<< ' n'?

Το () const είναι στην πραγματικότητα μια συνάρτηση μέλους κλάσης συμβολοσειράς.

Εκχώρηση τιμής με τη συνάρτηση at ()

Μια τιμή μπορεί να αποδοθεί σε ένα μη σταθερό αντικείμενο συμβολοσειράς, με τη συνάρτηση at (), ως εξής:

string strCol=σειρά('Τηλεφωνώ')?
strCol.στο(2) = 'φά'?
κόστος<<strCol<< ' n'?

Η έξοδος είναι I fall.

Πρόβλημα με το Sub-scripting

Το πρόβλημα με το sub-scripting (ευρετηρίαση) είναι ότι εάν ο δείκτης είναι εκτός εμβέλειας, μπορεί να προκύψει λάθος αποτέλεσμα ή να εκδοθεί σφάλμα κατά την εκτέλεση.

εμπρός()

Αυτό επιστρέφει μια αναφορά στο πρώτο στοιχείο του αντικειμένου συμβολοσειράς, χωρίς να αφαιρεθεί το στοιχείο. Η έξοδος του παρακάτω κώδικα είναι 'I'.

string strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.εμπρός()?
κόστος<<κεφ<< ' n'?

Ο χαρακτήρας δεν αφαιρείται από το αντικείμενο συμβολοσειράς.

εμπρός () const

Όταν προηγείται η κατασκευή του αντικειμένου συμβολοσειράς από const, η παράσταση front () const εκτελείται αντί για front (). Χρησιμοποιείται, για παράδειγμα, στον ακόλουθο κώδικα.

conststring strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.εμπρός()?
κόστος<<κεφ<< ' n'?

Επιστρέφεται μια σταθερή αναφορά. Το στοιχείο δεν αφαιρείται από το αντικείμενο συμβολοσειράς. Κανένας χαρακτήρας δεν μπορεί να αλλάξει για ένα σταθερό αντικείμενο συμβολοσειράς.

πίσω()

Αυτό επιστρέφει μια αναφορά στο τελευταίο στοιχείο του αντικειμένου συμβολοσειράς, χωρίς να αφαιρεθεί το στοιχείο. Η έξοδος του ακόλουθου κώδικα είναι «u».

string strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.πίσω()?
κόστος<<κεφ<< ' n'?

πίσω () const

Όταν προηγείται η κατασκευή αντικειμένου συμβολοσειράς από const, η παράσταση back () const εκτελείται αντί για back (). Χρησιμοποιείται, για παράδειγμα, στον ακόλουθο κώδικα.

conststring strCol=σειρά('Σε αγαπώ')?
απανθρακώνωκεφ=strCol.πίσω()?
κόστος<<κεφ<< ' n'?

Επιστρέφεται μια σταθερή αναφορά. Το στοιχείο δεν αφαιρείται από το αντικείμενο συμβολοσειράς.

Χωρητικότητα συμβολοσειράς

size_type χωρητικότητα () const noexcept

Ο συνολικός αριθμός των χαρακτήρων που μπορεί να κρατήσει η συμβολοσειρά χωρίς να απαιτείται ανακατανομή, επιστρέφεται από αυτήν τη συνάρτηση μέλους χωρητικότητας. Ένα τμήμα κώδικα για αυτό είναι:

string strCol=σειρά()?
intσε ένα=strCol.χωρητικότητα()?
κόστος<<σε ένα<< ' n'?

Η έξοδος είναι 15 στον υπολογιστή μου.

αποθεματικό (n)

Ο χώρος μνήμης δεν είναι πάντα διαθέσιμος στο δωρεάν κατάστημα. Μπορείτε να κάνετε κράτηση για επιπλέον χώρο εκ των προτέρων. Εξετάστε το ακόλουθο τμήμα κώδικα:

string strCol=σειρά('αγάπη')?
strCol.Αποθεματικό(6)?
κόστος<<strCol.χωρητικότητα() << ' n'?

Η έξοδος είναι 15 στον υπολογιστή μου.

μέγεθος () const χωρίς εξαίρεση

Αυτό επιστρέφει τον αριθμό των χαρακτήρων στη συμβολοσειρά. Ο παρακάτω κώδικας απεικονίζει:

string strCol=σειρά('Σε αγαπώ')?
intσε ένα=strCol.Μέγεθος()?
κόστος<<σε ένα<< ' n'?

Η έξοδος είναι 10, η οποία δεν περιλαμβάνει τον χαρακτήρα nul, 0.

length () const χωρίς εξαίρεση

-ίδιο με το μέγεθος()Το
Σημείωση:Μέγεθος() <=χωρητικότητα()Το

shrink_to_fit ()

Μπορεί να μειώσει τη χωρητικότητα () στο μέγεθος () προκαλώντας ανακατανομή. δεν είναι υποχρεωτικό. Ο παρακάτω κώδικας το αποδεικνύει:

string strCol=σειρά('Σε αγαπώ')?
strCol.Αποθεματικό(12)?
strCol.shrink_to_fit()?
intμικρό=strCol.Μέγεθος()?
κόστος<<μικρό<< ' n'?

Η έξοδος είναι 10 και όχι 12 ή 16. Η συνάρτηση επιστρέφει άκυρη.

αλλαγή μεγέθους (sz), αλλαγή μεγέθους (sz, ‘c’)

Αυτό αλλάζει το μέγεθος της συμβολοσειράς. Εάν το νέο μέγεθος είναι μικρότερο από το παλιό, τότε τα στοιχεία προς το τέλος διαγράφονται. Εάν το νέο μέγεθος είναι μεγαλύτερο, τότε κάποιος προεπιλεγμένος χαρακτήρας προστίθεται προς το τέλος. Για να προσθέσετε έναν συγκεκριμένο χαρακτήρα, χρησιμοποιήστε τη συνάρτηση resize () με δύο ορίσματα. Το ακόλουθο τμήμα κώδικα απεικονίζει τη χρήση των δύο συναρτήσεων:

string strCol=σειρά('Σε αγαπώ')?
strCol.αλλαγή μεγέθους(6)?
κόστος<< 'Νέο μέγεθος strCol:' <<strCol.Μέγεθος() << ' n'?
συμβολοσειρά strCol1=σειρά('Αγαπώ', 'Και')?
strCol1.αλλαγή μεγέθους(12)?
κόστος<< 'Νέο μέγεθος του strCol1:' <<strCol1.Μέγεθος() << ' n'?

Η έξοδος είναι:

Νέο μέγεθος strCol: 6
Νέο μέγεθος strCol1: 12
Η συνάρτηση επιστρέφει άκυρη.

σαφές () εκτός

Αφαιρεί όλα τα στοιχεία από τη συμβολοσειρά, όπως δείχνει το ακόλουθο τμήμα κώδικα:

string strCol=σειρά('Σε αγαπώ')?
strCol.Σαφή()?
κόστος<<strCol.Μέγεθος() << ' n'?

Η έξοδος είναι 0. Η συνάρτηση επιστρέφει κενό.

κενό () const noexcept

Αυτό επιστρέφει 1 για true αν δεν υπάρχει χαρακτήρας στο αντικείμενο συμβολοσειράς ή 0 για false αν το αντικείμενο συμβολοσειράς δεν είναι κενό. Ο παρακάτω κώδικας το δείχνει αυτό:

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
κόστος<<strCol1.αδειάζω() << ' n'?
συμβολοσειρά strCol2=σειρά()?
κόστος<<strCol2.αδειάζω() << ' n'?

Η έξοδος είναι:

0
1

Επιστροφή Iterators και String Class

Ένας επαναληπτής είναι σαν δείκτης αλλά έχει περισσότερη λειτουργικότητα από τον δείκτη.

Έναρξη () χωρίς εξαίρεση

Επιστρέφει έναν επαναληπτικό που δείχνει τον πρώτο χαρακτήρα (στοιχείο) του αντικειμένου συμβολοσειράς, όπως στο ακόλουθο τμήμα κώδικα:

string strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςiter=strCol.να αρχίσει()?
κόστος<< *iter<< ' n'?

Η έξοδος είναι «εγώ». Σημειώστε τον τρόπο δήλωσης της δήλωσης που λαμβάνει τον επαναληπτή. Ο επαναλήπτης παραπέμπεται σε μια έκφραση επιστροφής για να λάβει την τιμή, με τον ίδιο τρόπο, που καταργείται η αναφορά ενός δείκτη.

Έναρξη () const noexcept?

Επιστρέφει έναν επαναληπτή που δείχνει το πρώτο στοιχείο της συλλογής αντικειμένων συμβολοσειράς. Όταν προηγείται η κατασκευή του αντικειμένου από const, η έκφραση begin () const εκτελείται αντί να ξεκινήσει (). Υπό αυτή τη συνθήκη, το αντίστοιχο στοιχείο στο αντικείμενο δεν μπορεί να τροποποιηθεί. Χρησιμοποιείται, για παράδειγμα, στον ακόλουθο κώδικα.

conststring strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::const_iteratoriter=strCol.να αρχίσει()?
κόστος<< *iter<< ' n'?

Η έξοδος είναι «εγώ». Σημειώστε ότι το const_iterator έχει χρησιμοποιηθεί αυτή τη φορά, αντί απλώς για τον επαναληπτή, για να λάβει τον επαναλαμβανόμενο επαναλήπτη.

τέλος () εκτός

Επιστρέφει έναν επαναληπτή που δείχνει αμέσως πέρα ​​από το τελευταίο στοιχείο του αντικειμένου συμβολοσειράς. Εξετάστε το ακόλουθο τμήμα κώδικα:

string strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςiter=strCol.τέλος()?
κόστος<< *iter<< ' n'?

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

end () const noexcept

Επιστρέφει έναν επαναληπτή που δείχνει αμέσως πέρα ​​από το τελευταίο στοιχείο του αντικειμένου συμβολοσειράς. Όταν η κατασκευή του αντικειμένου συμβολοσειράς προηγείται const, η παράσταση end () const εκτελείται αντί για end (). Εξετάστε το ακόλουθο τμήμα κώδικα:

conststring strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::const_iteratoriter=strCol.τέλος()?
κόστος<< *iter<< ' n'?

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

Αντίστροφη επανάληψη

Είναι πιθανό να υπάρχει ένας επαναληπτής που επαναλαμβάνεται από το πραγματικό τέλος μέχρι λίγο πριν από το πρώτο στοιχείο:

rbegin () εκτός

Επιστρέφει έναν επαναληπτικό που δείχνει το τελευταίο στοιχείο του αντικειμένου με συμβολοσειρά, όπως στο ακόλουθο τμήμα κώδικα:

string strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::reverse_iteratoriter=strCol.rbegin()?
κόστος<< *iter<< ' n'?

Η έξοδος είναι «u». Σημειώστε τον τρόπο δήλωσης της δήλωσης που λαμβάνει τον αντίστροφο επαναληπτή. Ο επαναλήπτης παραπέμπεται σε μια έκφραση επιστροφής για να λάβει την τιμή, με τον ίδιο τρόπο, που καταργείται η αναφορά ενός δείκτη.

rbegin () const noexcept?

Επιστρέφει έναν επαναληπτή που δείχνει το τελευταίο στοιχείο του αντικειμένου συμβολοσειράς. Όταν προηγείται η κατασκευή του αντικειμένου από const, η έκφραση rbegin () const εκτελείται αντί του rbegin (). Υπό αυτή τη συνθήκη, το αντίστοιχο στοιχείο στο αντικείμενο δεν μπορεί να τροποποιηθεί. Η δυνατότητα χρησιμοποιείται στον ακόλουθο κώδικα, για παράδειγμα.

conststring strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::const_reverse_iteratoriter=strCol.rbegin()?
κόστος<< *iter<< ' n'?

Η έξοδος είναι «u». Σημειώστε ότι το const_reverse_iterator έχει χρησιμοποιηθεί αυτή τη φορά, αντί για αντίστροφο_εκδότη, για να λάβετε τον επαναλαμβανόμενο επαναληπτή.

καθιστούν () χωρίς εξαίρεση

Επιστρέφει έναν επαναληπτικό που δείχνει ακριβώς πριν από το πρώτο στοιχείο του αντικειμένου συμβολοσειράς. Εξετάστε το ακόλουθο τμήμα κώδικα:

string strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::reverse_iteratoriter=strCol.κάνει()?
κόστος<< *iter<< ' n'?

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

render () const noexcept

Επιστρέφει έναν επαναληπτικό που δείχνει ακριβώς πριν από το πρώτο στοιχείο του αντικειμένου συμβολοσειράς. Όταν προηγείται η κατασκευή του αντικειμένου από const, η έκφραση rend () const εκτελείται αντί για rend (). Εξετάστε το ακόλουθο τμήμα κώδικα:

conststring strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::const_reverse_iteratoriter=strCol.κάνει()?
κόστος<< *iter<< ' n'?

Η έξοδος είναι μηδενική. Σημειώστε ότι το const_reverse_iterator έχει χρησιμοποιηθεί αυτή τη φορά, αντί για αντίστροφο_εκδότη, για να λάβετε τον επαναλαμβανόμενο επαναληπτή.

Τροποποιητές συμβολοσειράς

Ένας τροποποιητής που τροποποιεί το αντικείμενο συμβολοσειράς, μπορεί επίσης να λάβει ή να επιστρέψει έναν επαναληπτή.

Προσθήκη

βασική_χορδή&χειριστής+ =(constβασική_χορδή&Π)

Προσθέτει το δεξί αντικείμενο συμβολοσειράς στο αριστερό αντικείμενο συμβολοσειράς. Παράδειγμα:

συμβολοσειρά strCol1=σειρά('Αγαπώ')?
συμβολοσειρά strCol2=σειρά(' εσείς')?
strCol1+ =strCol2?
κόστος<<strCol1<< ' n'?

Το αποτέλεσμα είναι σ 'αγαπώ. Μην ξεχνάτε ότι το strCol1 += strCol2 είναι ίδιο με το strCol1 = strCol1 +strCol2.

Basic_string & operator+= (const charT* s)

Προσθέτει μια συμβολοσειρά κυριολεκτικά σε μια συλλογή αντικειμένων συμβολοσειράς. Παράδειγμα:

string strCol=σειρά('Αγαπώ')?
strCol+ = ' εσείς'?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ.

Basic_string & operator+= (charT c)

Προσθέτει έναν μόνο χαρακτήρα σε μια συμβολοσειρά αντικειμένου. Παράδειγμα:

string strCol=σειρά('Σ'αγαπώ')?
strCol+ = 'εσύ'?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ.

Basic_string & operator+= (λίστα αρχικοποιητή)

Προσθέτει μια λίστα προετοιμασίας. Παράδειγμα:

string strCol=σειρά('Αγαπώ')?
strCol+ = {'','και','ή','εσύ',' 0'}?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ. Είναι πάντα καλό να προσθέσετε το nul, 0 στο τέλος μιας λίστας προετοιμασίας χαρακτήρων.

Basic_string & addpend (const basic_string & str)

Προσθέτει το αντικείμενο συμβολοσειράς ορίσματος στο κύριο αντικείμενο συμβολοσειράς. Παράδειγμα:

συμβολοσειρά strCol1=σειρά('Αγαπώ')?
συμβολοσειρά strCol2=σειρά(' εσείς')?
strCol1.προσαρτώ(strCol2)?
κόστος<<strCol1<< ' n'?

Έξοδος: Σε αγαπώ.

Basic_string & addpend (const charT* s)

Προσθέτει ένα κυριολεκτικό όρισμα συμβολοσειράς στην κύρια συμβολοσειρά. Παράδειγμα

string strCol=σειρά('Αγαπώ')?
strCol=strCol.προσαρτώ(' εσείς')?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ.

βασική_χορδή & προσάρτηση (λίστα αρχικοποιητή)

Προσθέτει τη λίστα αρχικοποίησης, η οποία είναι όρισμα, στην κύρια συμβολοσειρά. Παράδειγμα:

string strCol=σειρά('Αγαπώ')?
strCol=strCol.προσαρτώ({'','και','ή','εσύ',' 0'})?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ. Είναι πάντα καλό να προσθέτετε τον χαρακτήρα nul, 0 στο τέλος μιας λίστας προετοιμασίας.

βασική_χορδή & προσάρτηση (size_type n, charT c)

Προσθέτει n του ίδιου χαρακτήρα. Παράδειγμα:

string strCol=σειρά('αυτί')?
strCol=strCol.προσαρτώ(2, 'ή')?
κόστος<<strCol<< ' n'?

Έξοδος: ταμπού.

βασική_χορδή & προσάρτηση (const charT* s, size_type n)

Προσθέτει τα πρώτα n στοιχεία μιας συμβολοσειράς κυριολεκτικά στο κύριο αντικείμενο συμβολοσειράς. Παράδειγμα:

string strCol=σειρά('Αγαπώ')?
strCol=strCol.προσαρτώ('εσύ έτσι', 4)?
κόστος<<strCol<< ' n'?

Το αποτέλεσμα είναι: Σε αγαπώ. Εάν το n είναι μεγαλύτερο από το μήκος της κυριολεκτικής, ρίχνεται μια εξαίρεση length_error.

Basic_string & append (const basic_string & str, size_type pos, size_type n = npos)

Προσθέτει n χαρακτήρες από το ευρετήριο, pos στην κύρια συμβολοσειρά. Παράδειγμα:

string strCol=σειρά('Αγαπώ')?
strCol=strCol.προσαρτώ('είσαι έτσι', 2, 4)?
κόστος<<strCol<< ' n'?

Έξοδος: Σε αγαπώ. Μια εξαίρεση θα πεταχτεί επίσης εδώ, δείτε αργότερα.

Ανάθεση

βασική_χορδή&αναθέτω(constβασική_χορδή&Π)

Εκχωρεί το αντικείμενο συμβολοσειράς ορίσματος στην κύρια συμβολοσειρά, αντικαθιστώντας οποιοδήποτε περιεχόμενο υπήρχε.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2=σειρά('Με χρειάζεται')?
strCol1=strCol1.αναθέτω(strCol2)?
κόστος<<strCol1<< ' n'?

Έξοδος: Με χρειάζεται.

βασική_χορδή&αναθέτω(constδιάγραμμα*μικρό)

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

string strCol=σειρά('Σε αγαπώ')?
strCol=strCol.αναθέτω('Με χρειάζεται')?
κόστος<<strCol<< ' n'?

Έξοδος: Με χρειάζεται.

βασική_χορδή&αναθέτω(λίστα αρχικοποίησης<διάγραμμα>>)

Εκχωρεί ένα όρισμα λίστας προετοιμασίας στην κύρια συμβολοσειρά,αντικαθιστώντας οποιοδήποτε περιεχόμενο υπήρχε.
[cc lang='ντο'διέφυγε='αληθής'πλάτος='780']
string strCol=σειρά('Σε αγαπώ')?
strCol=strCol.αναθέτω({'ΜΙΚΡΟ','η','Και','','n','Και','Και','ρε','μικρό','','Μ','Και',' 0'})?
κόστος<<strCol<< ' n'?

Έξοδος: Με χρειάζεται. Είναι καλό να προσθέτετε πάντα το nul, 0 στο τέλος της λίστας χαρακτήρων, για να σχηματίσετε μια κυριολεκτική συμβολοσειρά.

βασική_χορδή&αναθέτω(constδιάγραμμα*μικρό,size_type n)

Αντιστοιχίζει τους πρώτους n χαρακτήρες ενός κυριολεκτικού ορίσματος συμβολοσειράς στην κύρια συμβολοσειρά, αντικαθιστώντας κάθε περιεχόμενο που υπήρχε.

string strCol=σειρά('Σε αγαπώ')?
strCol=strCol.αναθέτω('Με χρειάζεται', 9)?
κόστος<<strCol<< ' n'?

Έξοδος: Χρειάζεται.

βασική_χορδή&αναθέτω(size_type n,charT γ)

Εκχωρεί ένα όρισμα n των ίδιων χαρακτήρων στην κύρια συμβολοσειρά, αντικαθιστώντας οποιοδήποτε περιεχόμενο υπήρχε.

string strCol=σειρά('Σε αγαπώ')?
strCol=strCol.αναθέτω(4, 'Και')?
κόστος<<strCol<< ' n'?

Έξοδος: εεεε

βασική_χορδή&αναθέτω(constβασική_χορδή&Π,size_type pos,
size_type n=npos)

Εκχωρεί n χαρακτήρες ενός ορίσματος αντικειμένου συμβολοσειράς, ξεκινώντας από το pos, στην κύρια συμβολοσειρά, αντικαθιστώντας κάθε περιεχόμενο που υπήρχε εκεί.

string strCol=σειρά('Σε αγαπώ')?
strCol=strCol.αναθέτω('Με χρειάζεται', 4, 5)?
κόστος<<strCol<< ' n'?

Έξοδος: ανάγκες. Θα αποτελούσε εξαίρεση - δείτε αργότερα.

Εισαγωγή

βασική_χορδή&εισάγετε(size_type pos, constβασική_χορδή&Π)

Εισάγει το όρισμα αντικειμένου συμβολοσειράς στην κύρια συμβολοσειρά, στο ευρετήριο, θέση.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2=σειρά('μίσος και')?
strCol1=strCol1.εισάγετε(2,strCol2)?
κόστος<<strCol1<< ' n'?

Αποτέλεσμα: Σε μισώ και σε αγαπώ. Θα αποτελούσε εξαίρεση - δείτε αργότερα.

βασική_χορδή&εισάγετε(size_type pos1, constβασική_χορδή&
Π,size_type pos2,size_type n=npos)

Εισάγει ένα μήκος n χαρακτήρων από το pos2 του ορίσματος αντικειμένου συμβολοσειράς, στην κύρια συμβολοσειρά, στο ευρετήριο, pos1.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2=σειρά(«μίσος, θέληση και ανάγκη»)?
strCol1=strCol1.εισάγετε(2,strCol2, 6, 9)?
κόστος<<strCol1<< ' n'?

Έξοδος: Σε θέλω και σε αγαπώ.

ένθετο iterator (const_iterator p, charT c)

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

string strCol=σειρά('Σε αγαπώ')?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςiter=strCol.να αρχίσει()?
++iter? ++iter? ++iter? ++iter? ++iter? ++iter?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςδίκτυο=strCol.εισάγετε(iter, 'ρε')?
κόστος<< *δίκτυο<< ' n'?
κόστος<<strCol<< ' n'?

Η έξοδος είναι:

'ρε'

σε αγάπησα

ένθετο iterator (const_iterator p, size_type n, charT c)

Εισάγει n του ίδιου χαρακτήρα του ορίσματος, στη θέση που δείχνει ο επαναληπτής. Επιστρέφει έναν επαναληπτή για τη θέση της αρχής των πρόσφατα εισαχθέντων ίδιων χαρακτήρων.

string strCol=σειρά('Καρτέλα στη γη.')?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςiter=strCol.να αρχίσει()?
++iter? ++iter? ++iter?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςδίκτυο=strCol.εισάγετε(iter, 2, 'ή')?
κόστος<< *δίκτυο<< ' n'?
κόστος<<strCol<< ' n'?

Η έξοδος είναι:

'ή'

Ταμπού στη γη.

βασική_χορδή&εισάγετε(size_type pos, constδιάγραμμα*μικρό)

Εισάγει μια συμβολοσειρά όρισμα κυριολεκτικά στο ευρετήριο, pos στην κύρια συμβολοσειρά.

string strCol=σειρά('Καρτέλα στη γη.')?
strCol=strCol.εισάγετε(3, 'ω')?
κόστος<<strCol<< ' n'?

Έξοδος: Ταμπού στη γη.

βασική_χορδή&εισάγετε(size_type pos, constδιάγραμμα*μικρό,size_type n)

Εισάγει τους πρώτους n χαρακτήρες της συμβολοσειράς ορίσματος κυριολεκτικά, στο ευρετήριο, pos στην κύρια συμβολοσειρά.

string strCol=σειρά('Καρτέλα στη γη.')?
strCol=strCol.εισάγετε(3, 'ωωωω', 2)?
κόστος<<strCol<< ' n'?

Έξοδος: Ταμπού στη γη.

Αντικατάσταση

βασική_χορδή&αντικαθιστώ(size_type pos1,size_type n1, constβασική_χορδή&Π))

Αντικαθιστά τους χαρακτήρες n1 στο κύριο αντικείμενο συμβολοσειράς από το ευρετήριο, pos1, με το αντικείμενο συμβολοσειράς ορίσματος.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2=σειρά('σε μισώ και')?
strCol1=strCol1.αντικαθιστώ(2, 4,strCol2)?
κόστος<<strCol1<< ' n'?

Έξοδος: Σε μισώ και εσένα. Θα αποτελούσε εξαίρεση - δείτε αργότερα.

βασική_χορδή&αντικαθιστώ(size_type pos1,size_type n1, constβασική_χορδή&
Π,size_type pos2,size_type n2=npos)

Αντικαθιστά τους χαρακτήρες n1 στο κύριο αντικείμενο συμβολοσειράς από το ευρετήριο, pos1, με n2 χαρακτήρες του αντικειμένου συμβολοσειράς ορίσματος από το ευρετήριο, pos2.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
συμβολοσειρά strCol2=σειρά('Τον μισούμε και αυτόν')?
strCol1=strCol1.αντικαθιστώ(2, 4,strCol2, 3, 12)?
κόστος<<strCol1<< ' n'?

Έξοδος: Μισώ αυτόν και εσένα.

βασική_χορδή&αντικαθιστώ(size_type pos1,size_type n1, constδιάγραμμα*μικρό,
size_type n2)

Αντικαθιστά τους χαρακτήρες n1 στο κύριο αντικείμενο συμβολοσειράς από το ευρετήριο, pos1, με τους πρώτους χαρακτήρες n2 του ορίσματος κυριολεκτικής συμβολοσειράς.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
strCol1=strCol1.αντικαθιστώ(2, 4, 'μισώ αυτόν και αυτήν', 12)?
κόστος<<strCol1<< ' n'?

Έξοδος: Μισώ αυτόν και εσένα.

βασική_χορδή & αντικατάσταση (size_type pos, size_type n, const charT* s)

Αντικαθιστά n χαρακτήρες στο κύριο αντικείμενο συμβολοσειράς από το index, pos, με το όρισμα κυριολεκτικής συμβολοσειράς.

συμβολοσειρά strCol1=σειρά('Σε αγαπώ')?
strCol1=strCol1.αντικαθιστώ(2, 4, 'μισώ τον και')?
κόστος<<strCol1<< ' n'?

Έξοδος: Μισώ αυτόν και εσένα.

βασική_χορδή&αντικαθιστώ(size_type pos1,size_type n1,size_type n2,charT γ)

Αντικαθιστά τους χαρακτήρες n1 στο κύριο αντικείμενο συμβολοσειράς από το ευρετήριο, pos1, με n2 του ίδιου χαρακτήρα του ορίσματος.

συμβολοσειρά strCol1=σειρά('Ένα κακό tablet εκεί.')?
strCol1=strCol1.αντικαθιστώ(9, 3, 2, 'ή')?
κόστος<<strCol1<< ' n'?

Έξοδος: Ένα κακό ταμπού εκεί ..

διαγραφή iterator (const_iterator p)

Αφαιρεί έναν χαρακτήρα στη θέση που υποδεικνύει ο επαναληπτής. στη συνέχεια επιστρέφει τη θέση επαναληπτή, η οποία τώρα καταλαμβάνεται από τον χαρακτήρα που ήταν δίπλα σε αυτόν τον χαρακτήρα (ή τέλος ()). Ο παρακάτω κώδικας το δείχνει αυτό:

string strCol=σειρά('Α Β Γ Δ')?
βασική_χορδή<απανθρακώνω> ::επαναληπτηςiter=strCol.να αρχίσει()?
++iter? ++iter?
strCol.εξάλειψη(iter)?
κόστος<<strCol[0] << '' <<strCol[1] << '
'
<<strCol[2]<< ' n'?

Η έξοδος: α β δ

βασική_χορδή&εξάλειψη(size_type pos= 0,size_type n=npos)

Αφαιρεί n χαρακτήρες από το ευρετήριο, θέση.

string strCol=σειρά('Α Β Γ Δ')?
strCol.εξάλειψη(1, 2)?
κόστος<<strCol[0] << '' <<strCol[1] << ' n'?

Έξοδος: α δ

void push_back (charT c)

Για να προσθέσετε έναν μόνο χαρακτήρα στο τέλος της συμβολοσειράς:

string strCol=σειρά('Α Β Γ Δ')?
strCol.push_back('5')?
κόστος<<strCol<< ' n'?

Έξοδος: abcd5

void pop_back ()

Καταργεί τον τελευταίο χαρακτήρα χωρίς να τον επιστρέψει. Το μέγεθος της συμβολοσειράς μειώνεται κατά 1.

string strCol=σειρά('abcde')?
strCol.pop_back()?
κόστος<<strCol<< ' n'?

Έξοδος: abcd

κενή ανταλλαγή (βασικές_χορδές & ες)

Τα κυριολεκτικά δύο αντικειμένων συμβολοσειράς μπορούν να ανταλλαχθούν.

συμβολοσειρά strCol1=σειρά(<ένα αναγνωριστικό='post-69618 -__ DdeLink__781_3724385525'>>προς το>>'abcde')?
συμβολοσειρά strCol2=σειρά('1234567')?
strCol1.ανταλαγή(strCol2)?
κόστος<<strCol1<< ' n'?
κόστος<<strCol2<< ' n'?

Η έξοδος είναι:

'1234567'
'abcde'

Λειτουργίες συμβολοσειράς

const charT* c_str () const noexcept

Επιστρέφει έναν δείκτη στο πρώτο στοιχείο της συμβολοσειράς. Ο δείκτης μπορεί να αυξηθεί.

conststring strCol=σειρά('abcde')?
const απανθρακώνω*Π=strCol.c_str()?
κόστος<< *Π<< ' n'?
++Π?
κόστος<< *Π<< ' n'?

Η έξοδος είναι:

προς το
σι

Λόγω του δεύτερου const στην επικεφαλίδα, το πρόγραμμα δεν μπορεί να αλλάξει κανένα χαρακτήρα στη συμβολοσειρά. Η κατασκευή προηγείται του const.

const charT* data () const noexcept

Επιστρέφει έναν δείκτη στο πρώτο στοιχείο της συμβολοσειράς. Ο δείκτης μπορεί να αυξηθεί.

conststring strCol=σειρά('abcde')?
const απανθρακώνω*Π=strCol.δεδομένα()?
κόστος<< *Π<< ' n'?
++Π?
κόστος<< *Π<< ' n'?

Η έξοδος είναι:

προς το
σι

Λόγω του δεύτερου const στην επικεφαλίδα, το πρόγραμμα δεν μπορεί να αλλάξει κανένα χαρακτήρα στη συμβολοσειρά. Η κατασκευή προηγείται του const.

Basic_string substr (size_type pos = 0, size_type n = npos) const

Επιστρέφει ένα αντικείμενο συμβολοσειράς n χαρακτήρων για την υπο-συμβολοσειρά που ξεκινά από το ευρετήριο, pos.

conststring strCol=σειρά('abcdefghij')?
conststring retStr=strCol.υποστ(2, 4)?
κόστος<<retStr<< ' n'?

Έξοδος: cdef

εύρεση () Λειτουργίες μελών

size_type find (const basic_string & str, size_type pos = 0) const noexcept

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

string strCol=σειρά('Είμαστε ο κόσμος!')?
συμβολοσειρά strCol1=σειρά('ο')?
intσε ένα=strCol.εύρημα(strCol1, 2)?
κόστος<<σε ένα<< ' n'?

Παραγωγή:

δείκτης: 7
Επιστρέφει -1, όταν δεν βρεθεί.

size_type find (const charT* s, size_type pos = 0) const

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

string strCol=σειρά('Είμαστε ο κόσμος!')?
intσε ένα=strCol.εύρημα('είναι', 0)?
κόστος<<σε ένα<< ' n'?

Δεδομένου ότι το pos = 0 είναι το προεπιλεγμένο, το 0 στο όρισμα θα μπορούσε να παραλειφθεί.

Έξοδος: 3

Επιστρέφει -1, όταν δεν βρεθεί.

size_type find (const charT* s, size_type pos, size_type n) const

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

string strCol=σειρά(«Το μεγαλύτερο αγόρι»)?
intσε ένα=strCol.εύρημα('μεγαλύτερος', 1, 3)?
κόστος<<σε ένα<< ' n'?

Έξοδος: 4

Επιστρέφει -1, όταν δεν βρεθεί.

size_type find (charT c, size_type pos = 0) const

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

string strCol=σειρά('Είμαστε ο κόσμος!')?
intσε ένα=strCol.εύρημα('Με')?
κόστος<<σε ένα<< ' n'?

Έξοδος: -1

Υπάρχουν οι ακόλουθες λειτουργίες μελών αντίστροφης εύρεσης ():

size_type rfind(constβασική_χορδή&Π,size_type pos=npos) constκαθόλου?
size_type rfind(constδιάγραμμα*μικρό,size_type pos=npos) const?
size_type rfind(constδιάγραμμα*μικρό,size_type pos,size_type n) const?
size_type rfind(charT γ,size_type pos=npos) const?

Λειτουργίες σύγκρισης μελών

int σύγκριση (const basic_string & str) const noexcept

Συγκρίνει το αντικείμενο συμβολοσειράς ορίσματος με το κύριο αντικείμενο συμβολοσειράς. Εάν η κύρια συμβολοσειρά εμφανιστεί πριν από το όρισμα (στο λεξικό) επιστρέφει έναν θετικό αριθμό. Εάν εμφανιστεί μετά την κύρια συμβολοσειρά, επιστρέφει αρνητικό αριθμό. Εάν οι δύο συμβολοσειρές είναι ίδιες, επιστρέφει μηδέν.

συμβολοσειρά strCol1=σειρά('πλήθος')?
συμβολοσειρά strCol2=σειρά('Ανθρωποι')?
intσε ένα=strCol1.συγκρίνω(strCol2)?
κόστος<<σε ένα<< ' n'?

Έξοδος: -13

int σύγκριση (const charT* s) const

Όπως και παραπάνω, αλλά το επιχείρημα είναι μια κυριολεκτική συμβολοσειρά.

συμβολοσειρά strCol1=σειρά('Ανθρωποι')?
intσε ένα=strCol1.συγκρίνω('Ανθρωποι')?
κόστος<<σε ένα<< ' n'?

Έξοδος: 0

Χειριστές εγχόρδων

Αυτοί οι τελεστές ισχύουν για αντικείμενα συμβολοσειράς και όχι απαραίτητα για κυριολεκτικά συμβολοσειρά.

+

Συνδυάζει δύο αντικείμενα συμβολοσειράς και επιστρέφει τη συνένωση.

συμβολοσειρά strCol1=σειρά('χορεύω')?
συμβολοσειρά strCol2=σειρά(' το φεγγάρι')?
string strCol=strCol1+strCol2?
κόστος<<strCol<< ' n'?

Έξοδος: χορός στο φεγγάρι.

==

Επιστρέφει το 1 για true, εάν τα αντικείμενα συμβολοσειράς είναι τα ίδια. και μηδέν για ψευδές, αν δεν είναι.

συμβολοσειρά strCol1=σειρά('χορεύω')?
συμβολοσειρά strCol2=σειρά(' πάνω στο φεγγαρι')?
bool bl=strCol1==strCol2?
κόστος<<bl<< ' n'?

Έξοδος: 0

! = =

Επιστρέφει 1 αν τα αντικείμενα συμβολοσειράς δεν είναι ίδια και μηδέν αν είναι.

συμβολοσειρά strCol1=σειρά('χορεύω')?
συμβολοσειρά strCol2=σειρά(' πάνω στο φεγγαρι')?
bool bl=strCol1! = =strCol2?
κόστος<<bl<< ' n'?

Έξοδος: 1

<

Επιστρέφει 1, εάν ο αριστερός τελεστέος είναι μικρότερος από τον δεξί τελεστή σύμφωνα με το λεξικό, ή μηδέν αν δεν είναι.

συμβολοσειρά strCol1=σειρά('χορεύω')?
συμβολοσειρά strCol2=σειρά(' πάνω στο φεγγαρι')?
bool bl=strCol1<strCol2?
κόστος<<bl<< ' n'?

Έξοδος: 0

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

Τύποι χαρακτήρων κύριας συμβολοσειράς C ++

απανθρακώνω

Ο τύπος char είναι ο αρχικός τύπος C ++ και συνήθως αποθηκεύει έναν χαρακτήρα σε 8 bits.

char16_t

Αυτό αποθηκεύει έναν χαρακτήρα σε 16 bit.

char32_t

Αυτό αποθηκεύει έναν χαρακτήρα σε 32 bits.

wchar_t

Τα char16_t και char32_t είναι ευρείς χαρακτήρες. Το wchar_t είναι ένας ευρύς χαρακτήρας που είναι ιδιόκτητος και καθορίζεται από την εφαρμογή.

Αυτοί οι τύποι ονομάζονται χαρακτηριστικά. Ωστόσο, η C ++ τους αναφέρεται τεχνικά ως, εξειδικεύσεις χαρακτηριστικών. Αυτό το άρθρο έχει επικεντρωθεί στον τύπο κάρτας. Η προσέγγιση των άλλων τύπων είναι ελαφρώς διαφορετική - δείτε αργότερα.

Άλλες λειτουργίες συμβολοσειράς λειτουργιών μελών

Οι υπογραφές άλλων συναρτήσεων λειτουργίας συμβολοσειράς είναι:

size_type find_first_of(constβασική_χορδή&Π,size_type pos= 0) constκαθόλου?
size_type find_first_of(constδιάγραμμα*μικρό,size_type pos,size_type n) const?
size_type find_first_of(constδιάγραμμα*μικρό,size_type pos= 0) const?
size_type find_first_of(charT γ,size_type pos= 0) const?
size_type find_last_of(constβασική_χορδή&Π,size_type pos=npos) constκαθόλου?
size_type find_last_of(constδιάγραμμα*μικρό,size_type pos,size_type n) const?
size_type find_last_of(constδιάγραμμα*μικρό,size_type pos=npos) const?
size_type find_last_of(charT γ,size_type pos=npos) const?
size_type find_first_not_of(constβασική_χορδή&Π,size_type pos= 0) constκαθόλου?
size_type find_first_not_of(constδιάγραμμα*μικρό,size_type pos,size_type n) const?
size_type find_first_not_of(constδιάγραμμα*μικρό,size_type pos= 0) const?
size_type find_first_not_of(charT γ,size_type pos= 0) const?
size_type find_last_not_of(constβασική_χορδή&Π,size_type pos=npos) constκαθόλου?
size_type find_last_not_of(constδιάγραμμα*μικρό,size_type pos,size_type n) const?
size_type find_last_not_of(constδιάγραμμα*μικρό,size_type pos=npos) const?
size_type find_last_not_of(charT γ,size_type pos=npos) const?

συμπέρασμα

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