stringstream class c usage examples
Μια κλάση stringstream στο C ++ είναι μια κλάση ροής για λειτουργία σε χορδές. Η κλάση stringstream εφαρμόζει τις λειτουργίες εισόδου / εξόδου σε ροές βάσεων μνήμης, δηλαδή string:
Η κλάση stringstream στο C ++ επιτρέπει σε ένα αντικείμενο string να αντιμετωπίζεται ως stream. Χρησιμοποιείται για να λειτουργεί με χορδές. Αντιμετωπίζοντας τις χορδές ως ροές, μπορούμε να εκτελέσουμε λειτουργία εξαγωγής και εισαγωγής από / σε χορδές όπως οι ροές cin και cout.
Αυτοί οι τύποι λειτουργιών είναι κυρίως χρήσιμοι για τη μετατροπή συμβολοσειράς σε αριθμητικούς τύπους δεδομένων και αντίστροφα. Η κατηγορία stringstream αποδεικνύεται επίσης χρήσιμη σε διαφορετικούς τύπους ανάλυσης.
=> Διαβάστε το The Easy C ++ Training Series.
Τι θα μάθετε:
stringstream Class In C ++
Μια κλάση stringstream μπορεί να αναπαρασταθεί εικονικά ως εξής:
Μπορούμε να δούμε πού μπαίνει η κλάση stringstream στην εικόνα στο διάγραμμα ios. Αυτή η τάξη προέρχεται από την τάξη iostream. Τα αντικείμενα της κλάσης stringstream χρησιμοποιούν ένα buffer string που περιέχει μια ακολουθία χαρακτήρων. Αυτό το buffer είναι προσβάσιμο απευθείας ως αντικείμενο συμβολοσειράς.
Μπορούμε να χρησιμοποιήσουμε το str μέλος του stringstream για το σκοπό αυτό. Για να χρησιμοποιήσουμε την κλάση stringstream στο πρόγραμμα C ++, πρέπει να χρησιμοποιήσουμε την κεφαλίδα .
Για παράδειγμα,ο κωδικός για την εξαγωγή ενός ακέραιου από τη συμβολοσειρά θα ήταν:
string mystr(“2019”); int myInt; stringstream (mystr)>>myInt;
Εδώ δηλώνουμε ένα αντικείμενο συμβολοσειράς με τιμή '2019' και ένα αντικείμενο int 'myInt'. Στη συνέχεια, χρησιμοποιούμε τον κατασκευαστή κλάσης stringstream για να κατασκευάσουμε ένα αντικείμενο stringstream από το αντικείμενο string. Στη συνέχεια, χρησιμοποιώντας τον τελεστή εξαγωγής (>>), η τιμή εξάγεται στο myInt. Από τον παραπάνω κώδικα, η τιμή του myInt θα είναι το 2019.
Ας εξερευνήσουμε τις διάφορες λειτουργίες της κατηγορίας stringstream.
Εργασίες εισαγωγής και εξαγωγής με χρήση stringstream
Τώρα θα δούμε πώς να εισάγουμε δεδομένα στη συμβολοσειρά ή στη λειτουργία εισαγωγής και πώς να βγάζουμε δεδομένα από το stringstream, δηλαδή τη λειτουργία εξαγωγής της κλάσης stringstream.
# 1) Λειτουργία εισαγωγής
Προκειμένου να μεταφέρουμε τα δεδομένα σε μια συμβολοσειρά, μπορούμε να χρησιμοποιήσουμε δύο μεθόδους.
(i) Χρήση χειριστή εισαγωγής (<<)
με τι ανοίγω αρχεία βάζων
Λαμβάνοντας υπόψη ένα αντικείμενο stringstreams, μπορούμε να αντιστοιχίσουμε δεδομένα στο buffer ss ως εξής χρησιμοποιώντας το<< operator.
stringstream ss; ss<< “hello,world!!”;
Αυτό εισάγει «γεια, κόσμος !!» στο stringstream ss.
(ii) Χρήση της λειτουργίας str (string)
Μπορούμε επίσης να χρησιμοποιήσουμε τη συνάρτηση str για την εκχώρηση δεδομένων στο buffer stringstream. Η συνάρτηση str λαμβάνει τη συμβολοσειρά δεδομένων ως όρισμα και εκχωρεί αυτά τα δεδομένα στο αντικείμενο stringstream.
stringstream ss; ss.str(“Hello,World!!”);
# 2) Λειτουργία εξαγωγής
Έχουμε δύο μεθόδους για να βγάλουμε τα δεδομένα από το stringstream ή για τη διαδικασία εξαγωγής.
(i) Χρήση της λειτουργίας str ()
Μπορούμε να χρησιμοποιήσουμε τη συνάρτηση str () για να βγάλουμε τα δεδομένα από το stringstream ως εξής.
stringstream ss; ss<<”Hello,World”; cout< (ii) Χρήση χειριστή εξαγωγής (>>)
Μπορούμε να χρησιμοποιήσουμε τον τελεστή εξαγωγής για να εμφανίσουμε τα δεδομένα του stringstream ως εξής.
Stringstream ss; ss<>str;
Σύμφωνα με τον παραπάνω κώδικα, η μεταβλητή str θα έχει την τιμή του αντικειμένου ss ως αποτέλεσμα της ενέργειας του χειριστή εξαγωγής.
Παρακάτω δίνεται ένα πλήρες πρόγραμμα που δείχνει τη χρήση των εργασιών Εισαγωγής και Εξαγωγής της κλάσης stringstream.
#include #include #include using namespace std; int main() { //insertion operator << stringstream os; os << 'software '; cout<) stringstream ss; ss<> mystr1; string mystr2; ss>>mystr2; string mystr3; ss>>mystr3; cout< Παραγωγή:
Στο παραπάνω πρόγραμμα, έχουμε δείξει πρώτα τις μεθόδους εισαγωγής, δηλαδή τον χειριστή<< and str(string) function that reads the string into stringstream.
αλγόριθμος τύπου φούσκα c ++
Στη συνέχεια, είδαμε τη λειτουργία μεθόδων εξαγωγής που είναι η συνάρτηση str () που βγάζει τα δεδομένα από το stringstream και τον χειριστή >>.
Σημειώστε ότι για τον χειριστή >>, δεδομένου ότι τα αρχικά δεδομένα ροής συμβολοσειρών αποτελούνται από κενά διαστήματα ενώ εκχωρούν τα δεδομένα σε μια μεταβλητή συμβολοσειράς, θα διαβάζονται μόνο μέχρι τον πρώτο κενό χώρο. Ως εκ τούτου, για να μετατρέψουμε ολόκληρο το αντικείμενο stringstream σε δεδομένα συμβολοσειράς, χρειαζόμαστε μία μεταβλητή κάθε μία για να διαβάσουμε τα δεδομένα που διαχωρίζονται με κενό διάστημα
Ως εκ τούτου, στο παραπάνω πρόγραμμα, χρειαζόμαστε τρεις μεταβλητές συμβολοσειρών για να λάβουμε ολόκληρα τα δεδομένα αντικειμένων stringstream.
Εφαρμογές του stringstream στο C ++
Μπορούμε να βρούμε τις χρήσεις της κατηγορίας stringstream σε διάφορες εφαρμογές.
Μερικές από τις εφαρμογές έχουν συζητηθεί παρακάτω για την αναφορά σας:
# 1) Μετατροπή μεταξύ συμβολοσειρών και αριθμών
Οι τελεστές εισαγωγής και εξαγωγής του stringstream συνεργάζονται με όλους τους βασικούς τύπους δεδομένων. Ως εκ τούτου μπορούμε να τις χρησιμοποιήσουμε για να μετατρέψουμε συμβολοσειρές σε αριθμητικούς τύπους και αντίστροφα.
Το πλήρες πρόγραμμα μετατροπής μεταξύ συμβολοσειρών και αριθμών δίνεται παρακάτω.
#include #include #include using namespace std; int main() { //Numeric to string stringstream ss; int nInt = 2019; double nDouble = 3.142; ss << nInt << ' ' <> myStr1 >> myStr2; cout<<'The numeric values converted to string:'<> nIntval >> nDoubleval; cout<<'The string values converted to numeric types:'< Παραγωγή:
Πρώτον, έχουμε μετατρέψει αριθμητικές τιμές σε τιμές συμβολοσειράς. Στη συνέχεια, μετατρέπουμε τιμές αριθμητικής συμβολοσειράς σε αριθμητικές τιμές.
# 2) Μετρώντας τον αριθμό των λέξεων σε μια συμβολοσειρά
Μπορούμε να χρησιμοποιήσουμε την κλάση stringstream για να μετρήσουμε τον αριθμό των λέξεων σε μια συμβολοσειρά. Το πλήρες πρόγραμμα δίνεται παρακάτω.
#include #include #include using namespace std; int main() { string str = 'Simple Questions To Check Your Software Testing Basic Knowledge'; stringstream s(str); string word; int count = 0; while (s >> word) count++; cout << ' Number of words in given string are: ' << count; return 0; }
Παραγωγή:
Ο αριθμός των λέξεων σε μια δεδομένη συμβολοσειρά είναι: 9
Για να μετρήσουμε τον αριθμό των λέξεων σε μια δεδομένη συμβολοσειρά, το μετατρέπουμε πρώτα στο αντικείμενο stringstream. Στη συνέχεια μετράμε κάθε λέξη χρησιμοποιώντας έναν τελεστή εξαγωγής (καθώς σταματά σε κάθε κενό διάστημα) σε ένα βρόχο. Τέλος, εκτυπώνουμε την αξία του συνολικού αριθμού λέξεων.
πώς να εκτυπώσετε έναν πίνακα σε αντίστροφη σειρά java
# 3) Εκτυπώστε μεμονωμένες συχνότητες λέξεων με σειρά
Η επόμενη εφαρμογή του stringstream στο C ++ είναι η εκτύπωση των συχνοτήτων διαφορετικών λέξεων σε μια δεδομένη συμβολοσειρά. Αυτό σημαίνει ότι θα εκτυπώσουμε, πόσες φορές εμφανίζεται μια συγκεκριμένη λέξη στη δεδομένη συμβολοσειρά.
Για αυτό, έχουμε διατηρήσει μια δομή χάρτη που θα έχει ένα ζεύγος κλειδιών-τιμών με κάθε λέξη στη συμβολοσειρά ως κλειδί και η αντίστοιχη τιμή της είναι η συχνότητα αυτής της συγκεκριμένης λέξης.
Το πλήρες πρόγραμμα C ++ φαίνεται παρακάτω.
#include #include #include #include using namespace std; int main() { string mystr = 'Simple Questions To Check Your Software Testing Knowledge '; map myMap; stringstream ss(mystr); string Word; while (ss >> Word) myMap[Word]++; map::iterator it; for (it = myMap.begin(); it != myMap.end(); it++) cout Παραγωγή:
Σε αυτό το πρόγραμμα, κάθε λέξη στη συμβολοσειρά εισάγεται στο χάρτη και στη συνέχεια ο αριθμός ή η συχνότητα κάθε λέξης καταγράφεται ως τιμή για το αντίστοιχο κλειδί στο χάρτη. Με αυτόν τον τρόπο εξάγουμε όλες τις λέξεις της συμβολοσειράς και τις αντίστοιχες συχνότητές τους.
συμπέρασμα
Η κλάση Stringstream χρησιμοποιείται για εισαγωγή και εξαγωγή δεδομένων από / προς τα αντικείμενα συμβολοσειράς. Λειτουργεί ως ροή για το αντικείμενο συμβολοσειράς. Η κλάση stringstream είναι παρόμοια με τις ροές cin και cout εκτός από το ότι δεν διαθέτει κανάλι εισόδου-εξόδου.
Έχουμε συζητήσει διάφορες λειτουργίες της κατηγορίας stringstream μαζί με πολλά παραδείγματα των εφαρμογών του στον προγραμματισμό.
Στα επόμενα σεμινάρια μας, θα συζητήσουμε λεπτομερώς τις λειτουργίες της βιβλιοθήκης της γλώσσας C ++.
=> Αναζητήστε ολόκληρη τη σειρά προπόνησης C ++ εδώ.
Συνιστώμενη ανάγνωση
- Χρήση του δρομέα στο MongoDB με παραδείγματα
- Χρήση του ObjectId () στο MongoDB με παραδείγματα
- Μάθετε να χρησιμοποιείτε την τάξη C # StringBuilder και τις μεθόδους της με παραδείγματα
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Παραδείγματα ισχυρισμών σεληνίου - Πρακτικές εφαρμογές σε έργα
- MongoDB Query Document χρησιμοποιώντας τη μέθοδο Find () (Παραδείγματα)
- C # String Tutorial - Μέθοδοι συμβολοσειράς με παραδείγματα κώδικα
- Εξερευνήστε τα βασικά στοιχεία της Java στο σελήνιο με παραδείγματα