string array c implementation representation with examples
Το String Array στο C ++ είναι ένα Array of Strings. Σε αυτό το σεμινάριο, θα Ερευνήσουμε τις Λεπτομέρειες της Αναπαράστασης & Εφαρμογής των String Arrays στο C ++:
Έχουμε δει πίνακες στο C ++ στα προηγούμενα μαθήματά μας. Οι πίνακες μας επιτρέπουν να δηλώνουμε στοιχεία δεδομένων διαφόρων τύπων. Ενώ οι πίνακες όλων των αριθμητικών τύπων δεδομένων είναι πανομοιότυποι σε λειτουργίες και υλοποίηση, και οι πίνακες με τύπο δεδομένων συμβολοσειράς είναι διαφορετικοί.
ποια είναι η καλύτερη εφαρμογή κατασκοπείας
Στο C ++, η συμβολοσειρά μπορεί να αναπαρασταθεί ως πίνακας χαρακτήρων ή χρησιμοποιώντας κλάση συμβολοσειρών που υποστηρίζεται από το C ++. Κάθε συμβολοσειρά ή στοιχείο πίνακα τερματίζεται από μηδενικό χαρακτήρα. Η αναπαράσταση συμβολοσειρών χρησιμοποιώντας έναν πίνακα χαρακτήρων προέρχεται απευθείας από τη γλώσσα «C» καθώς δεν υπάρχει τύπος συμβολοσειράς στο C.
=> Κάντε κλικ εδώ για το δωρεάν μάθημα C ++.
Τι θα μάθετε:
Εφαρμογή συστοιχιών χορδών
Στο C ++, οι συμβολοσειρές μπορούν να αναπαρασταθούν με τρεις τρόπους.
- Χρησιμοποιώντας δισδιάστατες συστοιχίες χαρακτήρων: Αυτή η αναπαράσταση χρησιμοποιεί τις δισδιάστατες συστοιχίες όπου κάθε στοιχείο είναι η τομή μιας σειράς και αριθμού στήλης και αντιπροσωπεύει μια συμβολοσειρά
- Χρήση λέξης-κλειδιού συμβολοσειράς: Μπορούμε επίσης να χρησιμοποιήσουμε τη λέξη-κλειδί συμβολοσειράς του C ++ για να δηλώσουμε και να ορίσουμε πίνακες συμβολοσειρών.
- Χρησιμοποιώντας STL Vectors: Μπορούμε να χρησιμοποιήσουμε διανύσματα STL όπου κάθε στοιχείο ενός διανύσματος είναι μια συμβολοσειρά.
Τώρα, ας συζητήσουμε καθεμία από τις παραπάνω μεθόδους και επίσης να δούμε τα παραδείγματα προγραμματισμού για κάθε παράσταση.
Χρησιμοποιώντας δισδιάστατες συστοιχίες χαρακτήρων
Οι συστοιχίες συμβολοσειράς ή μια σειρά από χορδές μπορούν να αναπαρασταθούν χρησιμοποιώντας μια ειδική μορφή δισδιάστατων συστοιχιών. Σε αυτήν την αναπαράσταση, χρησιμοποιούμε έναν δισδιάστατο πίνακα χαρακτήρων τύπου για την αναπαράσταση μιας συμβολοσειράς.
Η πρώτη διάσταση καθορίζει τον αριθμό των στοιχείων, δηλαδή χορδές σε αυτόν τον πίνακα και η δεύτερη διάσταση καθορίζει το μέγιστο μήκος κάθε στοιχείου στον πίνακα.
Έτσι μπορούμε να χρησιμοποιήσουμε μια γενική αναπαράσταση όπως φαίνεται παρακάτω.
char “stringarrayname” (“number of strings”) (“maximum length of the string”)
Για παράδειγμα,εξετάστε την ακόλουθη δήλωση:
char string_array(10) (20);
Η παραπάνω δήλωση δηλώνει μια σειρά από συμβολοσειρές που ονομάζονται «string_array» που έχει 10 στοιχεία και το μήκος κάθε στοιχείου δεν υπερβαίνει τα 20.
Μπορούμε να δηλώσουμε και να αρχικοποιήσουμε μια σειρά ζώων χρησιμοποιώντας συμβολοσειρές με τον ακόλουθο τρόπο:
char animals (5) (10) = {“Lion”, “Tiger”, “Deer”, “Ape”, “Kangaroo”};
Ας δούμε ένα παράδειγμα προγραμματισμού που χρησιμοποιεί την έννοια των δισδιάστατων συστοιχιών χαρακτήρων για να κατανοήσουμε καλύτερα την ιδέα.
#include using namespace std; int main() { char strArray(5) (6) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Παραγωγή:

Στο παραπάνω πρόγραμμα, έχουμε δηλώσει μια σειρά από συμβολοσειρές που ονομάζονται strArray μεγέθους 5 με το μέγιστο μήκος κάθε στοιχείου ως 10. Στο πρόγραμμα, ξεκινάμε ένα βρόχο για να εμφανιστεί κάθε στοιχείο του πίνακα. Λάβετε υπόψη ότι πρέπει απλώς να αποκτήσουμε πρόσβαση στον πίνακα χρησιμοποιώντας την πρώτη διάσταση για να εμφανίσουμε το στοιχείο.
Η εύκολη πρόσβαση σε στοιχεία είναι ένα από τα κύρια πλεονεκτήματα των 2-D συστοιχιών. Είναι πράγματι απλοί στον προγραμματισμό.
Το κύριο μειονέκτημα αυτού του τύπου αναπαράστασης είναι, τόσο οι διαστάσεις του πίνακα, δηλαδή ο αριθμός των στοιχείων όσο και το μέγιστο μήκος του στοιχείου είναι σταθερές και δεν μπορούν να αλλάξουν όπως θέλουμε.
Δεύτερον, καθορίζουμε το μέγιστο μήκος κάθε στοιχείου ως τη δεύτερη διάσταση κατά τη δήλωση του πίνακα. Εάν το μήκος της συμβολοσειράς έχει οριστεί ως 100, και έχουμε όλα τα στοιχεία που έχουν μικρότερο μήκος, τότε η μνήμη χάνεται.
Χρήση λέξης-κλειδιού συμβολοσειράς
Σε αυτό, χρησιμοποιούμε τη λέξη-κλειδί «string» στο C ++ για να δηλώσουμε έναν πίνακα συμβολοσειρών. Σε αντίθεση με τους πίνακες χαρακτήρων, εδώ έχουμε μόνο 1D πίνακα. Η μοναδική διάσταση καθορίζει τον αριθμό των συμβολοσειρών στον πίνακα.
Η γενική σύνταξη για έναν πίνακα δήλωσης συμβολοσειρών που χρησιμοποιεί τη λέξη-κλειδί συμβολοσειράς δίνεται παρακάτω:
string “array name” (“number of strings”);
Σημειώστε ότι εδώ δεν καθορίζουμε το μέγιστο μήκος συμβολοσειράς. Αυτό σημαίνει ότι δεν υπάρχει περιορισμός στο μήκος των στοιχείων του πίνακα.
Για παράδειγμα, μπορούμε να δηλώσουμε έναν πίνακα χρωμάτων με τον ακόλουθο τρόπο.
string colors(5);
Μπορούμε να προετοιμάσουμε περαιτέρω αυτόν τον πίνακα όπως φαίνεται παρακάτω:
string colors(5) = {“Red”, “Green”, “Blue”, “Orange”, “Brown”};
Δίνεται παρακάτω ένα πρόγραμμα C ++ για να κατανοήσετε τη λέξη-κλειδί συμβολοσειράς και τη χρήση της σε μια σειρά συμβολοσειρών.
#include using namespace std; int main() { string numArray(5) = {'one', 'two', 'three', 'four', 'five'}; cout<<'String array is as follows:'< Παραγωγή:

Έχουμε τροποποιήσει το προηγούμενο πρόγραμμα συστοιχιών χαρακτήρων και αποδείξαμε τη χρήση λέξεων-κλειδιών συμβολοσειράς. Η έξοδος του προγράμματος είναι η ίδια, αλλά ο τρόπος που επιτυγχάνεται είναι διαφορετικός καθώς ορίζουμε μια σειρά συμβολοσειρών χρησιμοποιώντας τη λέξη-κλειδί συμβολοσειράς.
Σημειώστε ότι ο πίνακας συμβολοσειρών που χρησιμοποιεί τη λέξη-κλειδί συμβολοσειράς έχει ένα πλεονέκτημα στο οποίο δεν έχουμε περιορισμούς στο μήκος των συμβολοσειρών στον πίνακα. Δεδομένου ότι δεν υπάρχει περιορισμός, δεν χάνουμε επίσης χώρο μνήμης.
Στο κάτω μέρος, αυτός ο πίνακας έχει σταθερό μέγεθος. Πρέπει να δηλώσουμε εκ των προτέρων το μέγεθος του πίνακα.
Χρησιμοποιώντας STL Vectors
Μπορούμε επίσης να χρησιμοποιήσουμε διανύσματα STL για δήλωση και καθορισμό δυναμικών συστοιχιών. Έτσι, για να ορίσουμε μια σειρά από συμβολοσειρές μπορούμε να έχουμε ένα φορέα STL συμβολοσειράς τύπου.
Αυτή η δήλωση μιας σειράς συμβολοσειρών με τη χρήση διανύσματος φαίνεται παρακάτω:
vector “stringarray_Name”;
Αναφερόμενος στην παραπάνω δήλωση, μπορούμε να δηλώσουμε ένα διάνυσμα «θέματα» με τον ακόλουθο τρόπο:
vector mysubjects;
Σημειώστε ότι μπορούμε να αντιστοιχίσουμε στοιχεία στο διάνυσμα χρησιμοποιώντας τη μέθοδο 'push_back' ή άλλες μεθόδους φορέα STL.
Δίνεται παρακάτω ένα παράδειγμα προγραμματισμού που χρησιμοποιεί το C ++ για να αποδείξει τη χρήση του διανύσματος STL για την αναπαράσταση μιας σειράς συμβολοσειρών.
#include #include using namespace std; int main() { vector myNumbers; myNumbers.push_back('one'); myNumbers.push_back('two'); myNumbers.push_back('three'); myNumbers.push_back('four'); myNumbers.push_back('five'); cout<<'String array is as follows:'< Παραγωγή:

Στο παραπάνω πρόγραμμα, έχουμε ένα STL διάνυσμα myNumbers της συμβολοσειράς τύπου. Στη συνέχεια, προσθέτουμε στοιχεία σε αυτόν τον φορέα χρησιμοποιώντας τη μέθοδο push_back και στη συνέχεια εμφανίζουμε καθένα από τα στοιχεία του διανύσματος.
Εάν δούμε ολόκληρη τη λειτουργία του διανύσματος STL και του πίνακα συμβολοσειρών, βλέπουμε ότι σε αυτήν την περίπτωση, δεν έχουμε όριο στον αριθμό των στοιχείων στο πίνακα ή στο μέγιστο μήκος κάθε στοιχείου. Βλέπουμε ότι η σειρά των συμβολοσειρών που χρησιμοποιούν διανύσματα είναι εντελώς δυναμική και μπορεί να μειωθεί ή να αυξηθεί δυναμικά.
καλύτερο λογισμικό δημιουργίας παιχνιδιών για αρχάριους
Πώς να επιλέξετε την παράσταση που θα χρησιμοποιήσετε;
Τώρα που έχουμε δει και τις τρεις αναπαραστάσεις των συστοιχιών συμβολοσειρών, μπορούμε να συμπεράνουμε ότι και από τις τρεις αναπαραστάσεις, η διανυσματική αναπαράσταση είναι η καλύτερη καθώς είναι δυναμική στη φύση.
Εξαρτάται από τον σκοπό και τις απαιτήσεις του πίνακα συμβολοσειρών. Όταν έχουμε την απαίτηση ότι χρειαζόμαστε έναν πίνακα συμβολοσειράς σταθερού μεγέθους και γνωρίζουμε τα ακριβή δεδομένα που θα μεταβούν σε έναν πίνακα συμβολοσειρών, τότε μπορούμε να αναζητήσουμε πίνακα χαρακτήρων ή αναπαράσταση συμβολοσειρών.
Όταν θέλουμε τη συστοιχία συμβολοσειρών να μεγαλώνει ή να συρρικνώνεται δυναμικά, μπορούμε να καταφύγουμε σε διανυσματική αναπαράσταση καθώς θα μας βοηθήσει να αναπτύξουμε προγράμματα αλλάζοντας δυναμικά τον πίνακα.
συμπέρασμα
Οι συστοιχίες συμβολοσειρών είναι ειδικοί πίνακες με δεδομένα ως συμβολοσειρές. Αυτό σημαίνει ότι κάθε στοιχείο του πίνακα είναι μια συμβολοσειρά που τερματίζεται από μηδενικό χαρακτήρα.
Συζητήσαμε λεπτομερώς τρεις παραστάσεις ενός πίνακα συμβολοσειρών μαζί με τα πλεονεκτήματα και τα μειονεκτήματά τους. Ανάλογα με τις απαιτήσεις μας. μπορούμε να χρησιμοποιήσουμε οποιαδήποτε αναπαράσταση του πίνακα συμβολοσειρών που ταιριάζει στην υλοποίησή μας.
Στα επόμενα σεμινάριά μας, θα συνεχίσουμε να διερευνούμε λεπτομερώς τις συμβολοσειρές C ++ και τις λειτουργίες C ++.
=> Διαβάστε το The Easy C ++ Training Series.
Συνιστώμενη ανάγνωση
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- Java String με String Buffer και String Builder Tutorial
- C # String Tutorial - Μέθοδοι συμβολοσειράς με παραδείγματα κώδικα
- Λειτουργίες συμβολοσειράς Python
- Πίνακες C ++ με παραδείγματα
- Χορδές σε C ++ με παραδείγματα
- C # Τυχαίος αριθμός και C # Τυχαία γεννήτρια συμβολοσειρών με παραδείγματα κώδικα
- Ταξινόμηση σωρού σε C ++ με παραδείγματα