Τι είναι μια χορδή;
Μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων. Μια συμβολοσειρά C ++ είναι ένα αντικείμενο της κλάσης std :: string. Οι χαρακτήρες είναι αποθηκευμένες ακολουθίες byte με επιτρεπόμενη πρόσβαση σε ένα byte χαρακτήρων.
Οι συμβολοσειρές C ++ εκχωρούν δυναμικά τη μνήμη. Μπορεί να εκχωρηθεί περισσότερη μνήμη στη συμβολοσειρά κατά τη διάρκεια του χρόνου εκτέλεσης, εάν χρειάζεται. Δεδομένου ότι δεν υπάρχει προ-κατανομή μνήμης, δεν υπάρχει σπατάλη μνήμης. Μπορούμε να εκτελέσουμε διάφορες λειτουργίες σε χορδές, όπως συγκρίσεις, συνενώσεις, μετατροπές κ.λπ.
Σε αυτό το σεμινάριο C ++, θα μάθετε:
- Τι είναι μια χορδή;
- Δήλωση συμβολοσειρών
- Συμβολοσειρά χαρακτήρων C-Style
- std :: συμβολοσειρά
- Πρόσβαση σε τιμές συμβολοσειράς
- Λειτουργίες χορδών:
- strcpy ()
- strcat ()
- strlen ()
- strcmp ()
- Παράδειγμα:
Δήλωση συμβολοσειρών
Το C ++ υποστηρίζει δύο τύπους δηλώσεων συμβολοσειρών:
- Συμβολοσειρά χαρακτήρων τύπου C
- Τύπος κλάσης συμβολοσειράς
Συμβολοσειρά χαρακτήρων C-Style
Αυτός ο τύπος δήλωσης συμβολοσειράς εισήχθη στη γλώσσα προγραμματισμού Γ. Το C ++ συνεχίζει να το υποστηρίζει. Είναι απλώς μια μονοδιάστατη σειρά χαρακτήρων που τερματίζεται με μηδενικό χαρακτήρα (\ 0). Μια συμβολοσειρά μηδενική έχει χαρακτήρες που αποτελούν τη συμβολοσειρά και στη συνέχεια ακολουθείται από μηδέν.
Εξετάστε τη δήλωση συμβολοσειράς που δίνεται παρακάτω:
char name[5] = {'J', 'o', 'h', 'n', '\0'};
Η παραπάνω δήλωση δημιουργεί μια συμβολοσειρά που σχηματίζει τη λέξη John. Η λέξη έχει 4 χαρακτήρες, αλλά η συμβολοσειρά έχει μέγεθος 5. Ο επιπλέον χώρος επιτρέπει τη διατήρηση του μηδενικού χαρακτήρα.
Χρησιμοποιώντας τον κανόνα αρχικοποίησης του πίνακα, μπορούμε να γράψουμε την παραπάνω δήλωση ως εξής:
char name[] = "John";
Σημειώστε ότι δεν χρειάζεται να τοποθετήσετε τον μηδενικό χαρακτήρα στο τέλος της σταθεράς συμβολοσειράς. Ο μεταγλωττιστής C ++ θα τοποθετήσει αυτόματα το '\ 0' στο τέλος της συμβολοσειράς κατά την προετοιμασία του πίνακα.
std :: συμβολοσειρά
Η τυπική βιβλιοθήκη C ++ παρέχει την κλάση συμβολοσειρών που υποστηρίζει διάφορες λειτουργίες συμβολοσειρών. Είναι γραμμένο ως std :: string.
Για να χρησιμοποιήσουμε αυτήν την τάξη, πρέπει πρώτα να την συμπεριλάβουμε στον χώρο εργασίας μας χρησιμοποιώντας τον προεπεξεργαστή #include όπως φαίνεται παρακάτω:
#include
Στη συνέχεια, μπορούμε να δηλώσουμε τη συμβολοσειρά μας χρησιμοποιώντας τη λέξη-κλειδί συμβολοσειράς. Για παράδειγμα:
string name = "John";
Η παραπάνω δήλωση θα δημιουργήσει μια συμβολοσειρά με όνομα για να διατηρήσει την τιμή John.
Πρόσβαση σε τιμές συμβολοσειράς
Στο C ++, μπορούμε να έχουμε πρόσβαση στις τιμές συμβολοσειράς χρησιμοποιώντας το όνομα συμβολοσειράς. Για παράδειγμα:
#includeusing namespace std;int main() {char name[5] = { 'J', 'o', 'h', 'n', '\0' };cout << "String value is: ";cout << name << endl;return 0;}
Παραγωγή:
Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:
Επεξήγηση κώδικα:
- Συμπεριλαμβανομένου του αρχείου επικεφαλίδας iostream στον κώδικα μας. Θα μας επιτρέψει να διαβάσουμε και να γράψουμε στην κονσόλα.
- Συμπεριλαμβανομένου του χώρου ονομάτων std ώστε να χρησιμοποιεί τις κλάσεις και τις λειτουργίες του χωρίς να το καλεί
- Κλήση της κύριας συνάρτησης () μέσα στην οποία πρέπει να προστεθεί η λογική του προγράμματος. Η {σημάδια έναρξης του σώματος της κύριας () συνάρτησης.
- Δηλώνοντας μια σειρά χαρακτήρων και δίνοντάς της το όνομα ονόματος. Η συμβολοσειρά θα αποθηκεύσει την τιμή John. Ο επιπλέον χώρος θα αποθηκεύσει τον μηδενικό χαρακτήρα.
- Εκτύπωση κειμένου στην κονσόλα.
- Εκτύπωση της τιμής της συμβολοσειράς που ονομάζεται όνομα στην κονσόλα.
- Η κύρια () συνάρτηση θα πρέπει να επιστρέφει μια τιμή εάν το πρόγραμμα λειτουργεί καλά.
- Τέλος του σώματος της κύριας () συνάρτησης.
Εδώ είναι ένα άλλο παράδειγμα που χρησιμοποιεί την τυπική κλάση συμβολοσειρών C ++:
#include#include using namespace std;int main() {string name = "Guru99";cout << "The name is : " << name << endl;return 0;}
Παραγωγή:
Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:
Επεξήγηση κώδικα:
- Συμπεριλαμβανομένου του αρχείου επικεφαλίδας iostream στον κώδικα μας. Θα μας επιτρέψει να διαβάσουμε και να γράψουμε στην κονσόλα.
- Συμπεριλαμβανομένης της τυπικής κλάσης συμβολοσειρών στον κώδικα μας.
- Συμπεριλαμβανομένου του χώρου ονομάτων std ώστε να χρησιμοποιεί τις κλάσεις και τις λειτουργίες του χωρίς να το καλεί
- Κλήση της κύριας συνάρτησης () μέσα στην οποία πρέπει να προστεθεί η λογική του προγράμματος. Η {σημάδια έναρξης του σώματος της κύριας () συνάρτησης.
- Δηλώνοντας μια συμβολοσειρά και δίνοντάς της το όνομα ονόματος Η συμβολοσειρά θα αποθηκεύσει την τιμή Guru99.
- Εκτύπωση της τιμής του ονόματος συμβολοσειράς παράλληλα με κάποιο κείμενο στην κονσόλα.
- Η κύρια () συνάρτηση θα πρέπει να επιστρέφει μια τιμή εάν το πρόγραμμα λειτουργεί καλά.
- Τέλος του σώματος της κύριας () συνάρτησης.
Λειτουργίες χορδών:
Συχνά θα θέλετε να χειριστείτε χορδές. Το C ++ παρέχει ένα ευρύ φάσμα λειτουργιών που μπορείτε να χρησιμοποιήσετε για αυτό. Αυτές οι συναρτήσεις ορίζονται στην κατηγορία CString, ως εκ τούτου, πρέπει να τις συμπεριλάβουμε στον κώδικά μας για να χρησιμοποιήσουμε τις συναρτήσεις. Ας συζητήσουμε μερικά:
strcpy ()
Αυτή είναι η λειτουργία αντιγραφής συμβολοσειράς. Αντιγράφει μια συμβολοσειρά σε μια άλλη συμβολοσειρά.
Σύνταξη:
strcpy(string1, string2);
Οι δύο παράμετροι της συνάρτησης, string1 και string2, είναι συμβολοσειρές. Η συνάρτηση θα αντιγράψει το string string1 στο string 1.
strcat ()
Αυτή είναι η συνάρτηση συμβολοσειράς. Συνδυάζει χορδές.
Σύνταξη:
strcat(string1, string2);
Οι δύο παράμετροι της συνάρτησης, string1 και string2 είναι οι συμβολοσειρές που πρέπει να συνδυαστούν. Η παραπάνω συνάρτηση θα συνενώσει τη συμβολοσειρά string2 στο τέλος της συμβολοσειράς string1.
strlen ()
Αυτή είναι η συνάρτηση μήκους συμβολοσειράς. Επιστρέφει το μήκος της συμβολοσειράς που της μεταδίδεται ως όρισμα.
Σύνταξη:
strnlen(string1)
Η παράμετρος string1 είναι το όνομα της συμβολοσειράς του οποίου το μήκος πρέπει να καθοριστεί. Η παραπάνω συνάρτηση θα επιστρέψει το μήκος της συμβολοσειράς string1.
strcmp ()
Αυτή είναι η συνάρτηση σύγκρισης συμβολοσειρών. Χρησιμοποιείται για σύγκριση συμβολοσειρών.
Σύνταξη:
strcmp(string1, string2);
Η παραπάνω συνάρτηση θα επιστρέψει 0 εάν οι συμβολοσειρές string1 και string2 είναι παρόμοιες, λιγότερο από 0 εάν string1
Παράδειγμα:
Το παρακάτω παράδειγμα δείχνει πώς να χρησιμοποιήσετε τις παραπάνω συναρτήσεις συμβολοσειράς:
#include#include using namespace std;int main() {char name1[10] = "Guru99";char name2[10] = "John";char name3[10];int len;strcpy(name3, name1);cout << "strcpy( name3, name1) : " << name3 << endl;strcat(name1, name2);cout << "strcat( name1, name2): " << name1 << endl;len = strlen(name1);cout << "strlen(name1) : " << len << endl;return 0;}
Παραγωγή:
Ακολουθεί ένα στιγμιότυπο οθόνης του κώδικα:
Επεξήγηση κώδικα:
- Συμπεριλαμβανομένου του αρχείου επικεφαλίδας iostream στον κώδικα μας. Θα μας επιτρέψει να διαβάσουμε και να γράψουμε στην κονσόλα.
- Συμπεριλαμβανομένης της τυπικής κατηγορίας CString στον κώδικα μας.
- Συμπεριλαμβανομένου του χώρου ονομάτων std ώστε να χρησιμοποιεί τις κλάσεις και τις λειτουργίες του χωρίς να το καλεί
- Κλήση της κύριας συνάρτησης () μέσα στην οποία πρέπει να προστεθεί η λογική του προγράμματος. Η {σημάδια έναρξης του σώματος της κύριας () συνάρτησης.
- Δηλώνει μια συμβολοσειρά 10 χαρακτήρων και της δίνει το όνομα όνομα1. Η συμβολοσειρά θα αποθηκεύσει την τιμή Guru99.
- Δηλώνει μια συμβολοσειρά 10 χαρακτήρων και της δίνει το όνομα όνομα2. Η συμβολοσειρά θα αποθηκεύσει την τιμή John.
- Δηλώνει μια συμβολοσειρά 10 χαρακτήρων και της δίνει το όνομα όνομα3.
- Δήλωση μιας ακέραιας μεταβλητής που ονομάζεται len.
- Αντιγραφή ονόματος συμβολοσειράς1 στο όνομα συμβολοσειράς3.
- Εκτύπωση της τιμής του ονόματος συμβολοσειράς1 παράλληλα με κάποιο κείμενο στην κονσόλα. Πρέπει να εκτυπώσει το Guru99.
- Συνδυάζοντας το όνομα συμβολοσειράς2 στο τέλος του ονόματος συμβολοσειράς1. Η τιμή του ονόματος1 είναι τώρα Guru99John.
- Εκτύπωση της τιμής του ονόματος συμβολοσειράς1 παράλληλα με κάποιο κείμενο στην κονσόλα. Θα πρέπει να τυπώσει το Guru99John
- Προσδιορισμός του μήκους της συμβολοσειράς που ονομάζεται name1 και εκχώρηση της τιμής του μήκους στη μεταβλητή len.
- Εκτύπωση της τιμής της μεταβλητής len παράλληλα με κάποιο άλλο κείμενο στην κονσόλα.
- Η κύρια () συνάρτηση θα πρέπει να επιστρέφει μια τιμή εάν το πρόγραμμα λειτουργεί καλά.
- Τέλος του σώματος της κύριας () συνάρτησης.
Περίληψη
- Μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων.
- Οι χορδές ανήκουν στην τυπική κατηγορία συμβολοσειρών στο C ++.
- Μπορούμε να δηλώσουμε συμβολοσειρές χρησιμοποιώντας τη συμβολοσειρά χαρακτήρων τύπου C ή την τυπική κλάση συμβολοσειρών.
- Η συνάρτηση strcpy () αντιγράφει τη μία συμβολοσειρά στην άλλη.
- Η συνάρτηση strcat () συνδυάζει δύο συναρτήσεις.
- Η συνάρτηση strlen () επιστρέφει το μήκος μιας συνάρτησης.
- Η συνάρτηση strcmp () συγκρίνει δύο χορδές.