Ο τύπος String
στη γλώσσα C++ αναφέρεται σε μια κλάση που χρησιμοποιείται για την αναπαράσταση κειμένου ή αλφαριθμητικών. Η κλάση String
είναι μέρος της βιβλιοθήκης Standard Template Library (STL) και παρέχει πλούσιες λειτουργίες για τη διαχείριση και τον μετασχηματισμό των αλφαριθμητικών.
Ο τύπος String
επιτρέπει την αποθήκευση και τον χειρισμό αλφαριθμητικών με ευελιξία. Μπορούμε να εκχωρήσουμε τιμές σε ένα αντικείμενο τύπου String
χρησιμοποιώντας τον τελεστή ανάθεσης (=), να προσθέσουμε αλφαριθμητικά μεταξύ τους χρησιμοποιώντας τον τελεστή (+), και να πραγματοποιήσουμε διάφορες άλλες λειτουργίες όπως αναζήτηση, αντικατάσταση, συγκρίσεις και εξαγωγή υποσυμβολοσειρών.
Ο τύπος String
παρέχει επίσης μια πλούσια συλλογή από μεθόδους (συναρτήσεις μέλη) για τον χειρισμό των αλφαριθμητικών. Μπορούμε να χρησιμοποιήσουμε μεθόδους για την ανάκτηση του μήκους του αλφαριθμητικού, την αποκοπή και την πρόσθεση χαρακτήρων, τη μετατροπή σε κεφαλαία ή πεζά γράμματα, και πολλές άλλες ενέργειες.
Ο τύπος String
στην C++ αποτελεί έναν ισχυρό και ευέλικτο τύπο δεδομένων για τη διαχείριση και την επεξεργασία αλφαριθμητικών.
Παράδειγμα
#include <iostream> #include <string> using namespace std; int main() { // Δημιουργία μιας μεταβλητής τύπου string με όνομα greeting και αρχική τιμή "Hello" string greeting = "Hello"; // Εκτύπωση της μεταβλητής greeting στην οθόνη cout << greeting << endl; // Επιστροφή της τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση του προγράμματος return 0; }
Ο κώδικας που δόθηκε εκτυπώνει τη λέξη “Hello” στην οθόνη. Αρχικά, δημιουργείται μια μεταβλητή τύπου string με όνομα “greeting” και τιμή “Hello”. Έπειτα, η εντολή “cout << greeting << endl;” χρησιμοποιείται για να εκτυπώσει την τιμή της μεταβλητής “greeting” στην οθόνη, ακολουθούμενη από έναν χαρακτήρα νέας γραμμής. Τελικά, η συνάρτηση main() επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.
Το παραπάνω πρόγραμμα θα εμφανίσει το ακόλουθο αποτέλεσμα:
Hello
Για να χρησιμοποιήσετε συμβολοσειρές στη C++, πρέπει να συμπεριλάβετε τη βιβλιοθήκη <string>
στον κώδικά σας.
Η συμπερίληψη της βιβλιοθήκης γίνεται με τη χρήση της διακείμενης περιοχής #include
:
#include <iostream> #include <string> // Πρέπει να συμπεριλάβουμε τη βιβλιοθήκη <string> για να χρησιμοποιήσουμε συμβολοσειρές using namespace std; int main() { string greeting = "Hello"; // Δημιουργία μιας μεταβλητής τύπου string με όνομα greeting και αρχική τιμή "Hello" cout << greeting << endl; // Εκτύπωση της μεταβλητής greeting στην οθόνη return 0; }
Ο παραπάνω κώδικας σε C++ εκτυπώνει τη συμβολοσειρά “Hello” στην οθόνη. Ακολουθούν οι βήματα που περιγράφουν τη λειτουργία του κώδικα:
- Η γραμμή
#include <iostream>
συμπεριλαμβάνει τη βιβλιοθήκη<iostream>
, η οποία παρέχει τις απαραίτητες λειτουργίες εισόδου/εξόδου. - Η γραμμή
#include <string>
συμπεριλαμβάνει τη βιβλιοθήκη<string>
, η οποία παρέχει λειτουργίες για τη χρήση συμβολοσειρών. - Η εντολή
using namespace std;
δηλώνει ότι θα χρησιμοποιηθεί ο χώρος ονομάτωνstd
, όπου βρίσκονται οι βασικές κλάσεις και συναρτήσεις της C++. - Η συνάρτηση
main
είναι η κύρια συνάρτηση του προγράμματος, από όπου ξεκινά η εκτέλεσή του. - Δημιουργείται μια μεταβλητή
greeting
τύπουstring
με την τιμή “Hello”. Ηstring
είναι μια κλάση που αντιπροσωπεύει μια συμβολοσειρά. - Η εντολή
cout << greeting << endl;
χρησιμοποιεί το αντικείμενοcout
από τηνstd
για να εκτυπώσει την τιμή της μεταβλητήςgreeting
στην οθόνη. Τοendl
προσθέτει έναν χαρακτήρα νέας γραμμής μετά την εκτύπω
ση της συμβολοσειράς.
- Η εντολή
return 0;
επιστρέφει την τιμή 0, υποδεικνύοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία.
Συνολικά, ο κώδικας εκτυπώνει τη συμβολοσειρά “Hello” στην οθόνη και τερματίζει με επιτυχία.
Η συμπερίληψη της βιβλιοθήκης <string>
μας δίνει πρόσβαση στην κλάση string και τις συναρτήσεις που τη συνοδεύουν.
Στη C++, μπορούμε να χρησιμοποιήσουμε τον τελεστή + ανάμεσα σε συμβολοσειρές για να τις προσθέσουμε μαζί και να δημιουργήσουμε μια νέα συμβολοσειρά. Αυτό ονομάζεται συνένωση (concatenation):
#include <iostream> #include <string> using namespace std; int main() { // Δημιουργία μεταβλητής firstName και αρχικοποίησή της με την τιμή "John " string firstName = "John "; // Δημιουργία μεταβλητής lastName και αρχικοποίησή της με την τιμή "Doe" string lastName = "Doe"; // Δημιουργία μεταβλητής fullName και ανάθεση της τιμής της συνένωσης των μεταβλητών firstName και lastName string fullName = firstName + lastName; // Εκτύπωση της μεταβλητής fullName στην οθόνη cout << fullName << endl; // Επιστροφή τιμής 0 για να υποδηλώσει επιτυχή ολοκλήρωση του προγράμματος return 0; }
Ο παραπάνω κώδικας σε C++ δημιουργεί τρεις μεταβλητές τύπου string: firstName
, lastName
και fullName
. Αρχικά, η μεταβλητή firstName
περιέχει την τιμή “John “, ενώ η μεταβλητή lastName
περιέχει την τιμή “Doe”. Στη συνέχεια, η μεταβλητή fullName
δημιουργείται με τη συνένωση των περιεχομένων των μεταβλητών firstName
και lastName
, χρησιμοποιώντας τον τελεστή “+”.
Έπειτα, η τιμή της μεταβλητής fullName
εκτυπώνεται στην οθόνη με τη χρήση της εντολής cout << fullName << endl;
. Η cout
είναι ένα αντικείμενο που αντιπροσωπεύει την έξοδο στην οθόνη, ενώ ο τελεστής <<
χρησιμοποιείται για την εισαγωγή των δεδομένων που θέλουμε να εκτυπωθούν. Η εντολή endl
χρησιμοποιείται για να προσθέσει μια νέα γραμμή μετά την εκτύπωση του fullName
.
Τέλος, η συνάρτηση main()
επιστρέφει την τιμή 0 με την εντολή return 0;
, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία.
[adinserter block=”2″]
Το παραπάνω πρόγραμμα θα εμφανίσει το ακόλουθο αποτέλεσμα:
John Doe
Στην C++, μια συμβολοσειρά είναι ένα αντικείμενο που περιλαμβάνει μια σειρά από συμβολαίους (characters) και μπορεί να εκτελέσει διάφορες λειτουργίες που σχετίζονται με αυτές τις συμβολοσειρές. Οι συμβολοσειρές στη C++ είναι υλοποιημένες ως αντικείμενα της κλάσης string
, η οποία περιλαμβάνει πολλές χρήσιμες συναρτήσεις για τη διαχείριση και την επεξεργασία συμβολοσειρών.
Οι συναρτήσεις που περιλαμβάνονται στην κλάση string
μπορούν να εκτελέσουν διάφορες λειτουργίες πάνω στις συμβολοσειρές. Μερικές από αυτές τις λειτουργίες περιλαμβάνουν την συνένωση συμβολοσειρών, την εύρεση του μήκους μιας συμβολοσειράς, την αναζήτηση και αντικατάσταση συμβολοσειρών, και πολλές άλλες.
Με τη χρήση της κλάσης string
και των συναρτήσεων που παρέχει, μπορούμε να εκτελέσουμε διάφορες λειτουργίες πάνω στις συμβολοσειρές με απλό και ευανάγνωστο τρόπο, χωρίς την ανάγκη για περίπλοκο κώδικα.
Για παράδειγμα, μπορείτε να συνδέσετε συμβολοσειρές με τη συνάρτηση append().
#include <iostream> #include <string> using namespace std; int main() { string firstName = "John "; // Δημιουργία μεταβλητής firstName και αρχικοποίηση με την τιμή "John " string lastName = "Doe"; // Δημιουργία μεταβλητής lastName και αρχικοποίηση με την τιμή "Doe" firstName.append(lastName); // Προσθήκη της τιμής της μεταβλητής lastName στο τέλος της μεταβλητής firstName cout << firstName << endl; // Εκτύπωση της τιμής της μεταβλητής firstName στην οθόνη return 0; }
Ο παραπάνω κώδικας πραγματοποιεί τις εξής ενέργειες:
- Ορίζει δύο μεταβλητές τύπου
string
, τηνfirstName
και τηνlastName
, με αρχικές τιμές “John ” και “Doe” αντίστοιχα. - Χρησιμοποιεί τη μέθοδο
append()
για να προσθέσει την τιμή τηςlastName
στο τέλος τηςfirstName
, δημιουργώντας ένα νέο string που περιέχει “John Doe”. - Εκτυπώνει την τελική τιμή της
firstName
στην οθόνη, χρησιμοποιώντας την εντολήcout
. - Επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.
Ουσιαστικά, ο κώδικας συνδυάζει τις δύο συμβολοσειρές “John ” και “Doe” για να δημιουργήσει την ολοκληρωμένη ονοματολογία “John Doe” και την εκτυπώνει στην οθόνη.
Στην C++, ο τελεστής “+” χρησιμοποιείται τόσο για την πρόσθεση αριθμών όσο και για τη συνένωση συμβολοσειρών.
Όταν χρησιμοποιούμε τον τελεστή “+” μεταξύ αριθμών, πραγματοποιείται η αριθμητική πρόσθεση, όπου οι αριθμοί προστίθενται μεταξύ τους και παράγεται ένας νέος αριθμός ως αποτέλεσμα.
Από την άλλη πλευρά, όταν χρησιμοποιούμε τον τελεστή “+” μεταξύ συμβολοσειρών, πραγματοποιείται η συνένωση των συμβολοσειρών. Οι συμβολοσειρές συνενώνονται, δημιουργώντας μια νέα συμβολοσειρά που περιέχει τα χαρακτήρες αμφότερων των αρχικών συμβολοσειρών.
Έτσι, ο τελεστής “+” στη C++ μπορεί να έχει διαφορετική σημασία ανάλογα με τον τύπο των παραμέτρων που χρησιμοποιείται με αυτόν.
Αν προσθέσετε δύο αριθμούς, το αποτέλεσμα θα είναι αριθμός:
#include <iostream> using namespace std; int main() { int x = 5; // Δημιουργία μεταβλητής x και αρχικοποίησή της με την τιμή 5 int y = 6; // Δημιουργία μεταβλητής y και αρχικοποίησή της με την τιμή 6 int z = x + y; // Προσθήκη των μεταβλητών x και y και αποθήκευση του αποτελέσματος στη μεταβλητή z cout << z << endl; // Εκτύπωση της μεταβλητής z και αλλαγή γραμμής return 0; // Επιστροφή της τιμής 0 για ορθή ολοκλήρωση του προγράμματος }
Ο παραπάνω κώδικας πραγματοποιεί την πρόσθεση δύο ακεραίων αριθμών και εκτυπώνει το αποτέλεσμα στην οθόνη. Πιο συγκεκριμένα, ο κώδικας περιέχει τα εξής βήματα:
- Ορίζονται οι μεταβλητές
x
καιy
με τις τιμές 5 και 6 αντίστοιχα. - Η μεταβλητή
z
παίρνει την τιμή του αθροίσματος των μεταβλητώνx
καιy
. - Το αποτέλεσμα
z
εκτυπώνεται στην οθόνη μέσω της εντολήςcout << z << endl;
. - Το πρόγραμμα τερματίζει επιστρέφοντας την τιμή 0 από τη συνάρτηση
main
με την εντολήreturn 0;
.
Συνολικά, ο κώδικας εκτελεί την πρόσθεση των αριθμών 5 και 6 και εκτυπώνει το αποτέλεσμα 11 στην οθόνη.
Αν συνδέσετε δύο συμβολοσειρές, το αποτέλεσμα θα είναι συμβολοσειρά:
#include <iostream> #include <string> using namespace std; int main() { string x = "Hello "; // Δημιουργία μιας μεταβλητής string με την τιμή "Hello " string y = "World"; // Δημιουργία μιας μεταβλητής string με την τιμή "World" string z = x + y; // Συνένωση των δυο μεταβλητών string με τη χρήση του τελεστή + cout << z << endl; // Εκτύπωση της μεταβλητής z στην οθόνη, ακολουθούμενη από έναν χαρακτήρα νέας γραμμής return 0; // Επιστροφή της τιμής 0, υποδεικνύοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία }
Ο παραπάνω κώδικας εκτυπώνει το αλφαριθμητικό “Hello World” στην οθόνη. Ακολουθούν αναλυτικά οι ενέργειες που πραγματοποιούνται:
- Οι απαραίτητες βιβλιοθήκες
iostream
καιstring
εισάγονται για να χρησιμοποιηθούν οι σχετικές λειτουργίες. - Η συνάρτηση
main
ορίζεται ως η κύρια συνάρτηση του προγράμματος. - Ορίζονται τρεις μεταβλητές
x
,y
καιz
τύπουstring
. Ηx
παίρνει την τιμή “Hello “, ηy
παίρνει την τιμή “World” και ηz
αρχικοποιείται με τη συνένωση τωνx
καιy
. - Η συνάρτηση
cout
χρησιμοποιείται για την εκτύπωση του περιεχομένου της μεταβλητήςz
στην οθόνη. - Το
endl
προσθέτει έναν χαρακτήρα νέας γραμμής μετά την εκτύπωση του αλφαριθμητικού. - Η συνάρτηση
return 0
σηματοδοτεί την ομαλή ολοκλήρωση του προγράμματος, επιστρέφοντας την τιμή 0 στο λειτουργικό σύστημα.
Οπότε, όταν το πρόγραμμα εκτελεστεί, θα εμφανιστεί στην οθόνη η φράση “Hello World”.
Εάν προσπαθήσετε να προσθέσετε έναν αριθμό και μια συμβολοσειρά με τον τελεστή +, το αποτέλεσμα θα είναι συμβολοσειρά:
#include <iostream> #include <string> using namespace std; int main() { string x = "Hello "; // Δημιουργία μιας μεταβλητής x τύπου string με την τιμή "Hello " int y = 123; // Δημιουργία μιας μεταβλητής y τύπου int με την τιμή 123 string z = x + y; // Πραγματοποίηση συνένωσης της μεταβλητής x και της μεταβλητής y και αποθήκευση του αποτελέσματος στη μεταβλητή z cout << z << endl; // Εκτύπωση της μεταβλητής z στην οθόνη return 0; }
Ο παραπάνω κώδικας εκτελεί τις εξής ενέργειες:
- Συμπεριλαμβάνονται οι απαραίτητες βιβλιοθήκες
<iostream>
και<string>
. - Ορίζεται η συνάρτηση
main()
, η οποία είναι η κύρια συνάρτηση του προγράμματος. - Δημιουργείται μια μεταβλητή
x
τύπουstring
με την τιμή “Hello “. - Δημιουργείται μια μεταβλητή
y
τύπουint
με την τιμή 123. - Πραγματοποιείται η συνένωση (concatenation) της μεταβλητής
x
και της μεταβλητήςy
, και το αποτέλεσμα αποθηκεύεται στη μεταβλητήz
. - Εκτυπώνεται η μεταβλητή
z
στην οθόνη, χρησιμοποιώντας τονcout
. - Η συνάρτηση
main()
ολοκληρώνεται και επιστρέφει την τιμή 0.
Συνολικά, ο κώδικας εκτυπώνει το κείμενο “Hello 123” στην οθόνη.
[adinserter block=”3″]
Για να αποκτήσετε πληροφορίες για το μήκος μιας συμβολοσειράς στην C++, μπορείτε να χρησιμοποιήσετε τη συνάρτηση length()
.
#include <iostream> #include <string> using namespace std; int main() { string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cout << "The length of the txt string is: " << txt.length() << endl; // Εκτύπωση του μήκους του κειμένου return 0; }
Ο παραπάνω κώδικας σε C++ υπολογίζει το μήκος μιας συμβολοσειράς και το εκτυπώνει στην οθόνη.
Αρχικά, συμπεριλαμβάνονται οι κατάλληλες βιβλιοθήκες <iostream>
και <string>
για τη χρήση των συναρτήσεων εισόδου/εξόδου και των συμβολοσειρών αντίστοιχα.
Στη συνέχεια, ορίζεται η συνάρτηση main
, η οποία είναι η κύρια συνάρτηση του προγράμματος. Εντός της main
, δημιουργείται μια μεταβλητή txt
τύπου string
, η οποία περιέχει τη συμβολοσειρά “ABCDEFGHIJKLMNOPQRSTUVWXYZ”.
Στη συνέχεια, με τη χρήση της συνάρτησης length()
της κλάσης string
, υπολογίζεται το μήκος της συμβολοσειράς txt
. Το αποτέλεσμα εκτυπώνεται στην οθόνη με τη χρήση της συνάρτησης cout
της βιβλιοθήκης <iostream>
. Η εκτύπωση περιλαμβάνει το κείμενο “The length of the txt string is: ” ακολουθούμενο από το μήκος της συμβολοσειράς και έναν χαρακτήρα νέας γραμμής (endl
).
Τέλος, η συνάρτηση main
επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.
Όταν εκτελέσετε τον παραπάνω κώδικα, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:
“The length of the txt string is: 26”
Αυτό συμβαίνει επειδή η μεταβλητή txt
περιέχει μια συμβολοσειρά με 26 χαρακτήρες και η συνάρτηση length()
επιστρέφει το μήκος της συμβολοσειράς, δηλαδή τον αριθμό των χαρακτήρων της. Έτσι, το πρόγραμμα εκτυπώνει το μήνυμα “The length of the txt string is: ” ακολουθούμενο από τον αριθμό 26 και έναν χαρακτήρα νέας γραμμής.
Μπορείτε να συναντήσετε προγράμματα στη C++ που χρησιμοποιούν τη συνάρτηση size()
αντί για τη length()
για να πάρουν το μήκος μιας συμβολοσειράς. Αυτό είναι απλώς μια εναλλακτική μέθοδος και εξυπηρετεί τον ίδιο σκοπό με τη length()
. Είναι πλήρως δική σας επιλογή ποια από τις δύο μεθόδους θα προτιμήσετε να χρησιμοποιήσετε, καθώς και ποια σας φαίνεται πιο κατανοητή ή ευανάγνωστη.
#include <iostream> #include <string> using namespace std; int main() { string txt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; cout << "The size of the txt string is: " << txt.size() << endl; // Εκτύπωση του μεγέθους του string return 0; }
Ο παραπάνω κώδικας στη γλώσσα C++ κάνει τα εξής:
- Εισάγει τις απαραίτητες βιβλιοθήκες
<iostream>
και<string>
. - Ορίζει τη συνάρτηση
main()
, η οποία είναι η κύρια συνάρτηση του προγράμματος. - Δημιουργεί μια μεταβλητή
txt
τύπουstring
και την αρχικοποιεί με την αλφαβητική σειρά κεφαλαίων γραμμάτων. - Χρησιμοποιεί το αντικείμενο
cout
της βιβλιοθήκηςiostream
για να εκτυπώσει το μήνυμα “The size of the txt string is: ” ακολουθούμενο από το μέγεθος τουtxt
string. Το μέγεθος του string υπολογίζεται με τη χρήση της μεθόδουsize()
της κλάσηςstring
. - Επιστρέφει την τιμή 0, υποδηλώνοντας ότι το πρόγραμμα ολοκληρώθηκε με επιτυχία.
Το αποτέλεσμα που θα εμφανιστεί στην οθόνη είναι:
The size of the txt string is: 26
Αυτό συμβαίνει επειδή ο κώδικας χρησιμοποιεί την εντολή cout
για να εκτυπώσει το μήνυμα “The size of the txt string is: ” ακολουθούμενο από το μέγεθος του txt
string, το οποίο είναι 26. Η λειτουργία endl
χρησιμοποιείται για να προκαλέσει έναν αλλαγή γραμμής μετά την εκτύπωση του μηνύματος.
Μπορείτε να έχετε πρόσβαση στους χαρακτήρες ενός string αναφερόμενοι στον αριθμό τους δείκτη μέσα σε αγκύλες [].
Το παρακάτω παράδειγμα εμφανίζει τον πρώτο χαρακτήρα στο myString:
#include <iostream> #include <string> using namespace std; int main() { string myString = "Hello"; // Δημιουργία μιας μεταβλητής string με την τιμή "Hello" cout << myString[0]; // Εκτύπωση του πρώτου χαρακτήρα της συμβολοσειράς return 0; }
Στον παραπάνω κώδικα, έχουμε συμπεριλάβει τις απαραίτητες βιβλιοθήκες (<iostream>
και <string>
) και χρησιμοποιούμε το namespace std
.
Στη συνάρτηση main
, δημιουργούμε μια μεταβλητή με την ονομασία myString
τύπου string
και της αναθέτουμε την τιμή “Hello”. Έπειτα, χρησιμοποιούμε την εντολή cout
για να εκτυπώσουμε τον πρώτο χαρακτήρα της συμβολοσειράς myString
, χρησιμοποιώντας τη σύνταξη myString[0]
.
Το πρόγραμμα θα εκτυπώσει στην οθόνη τον πρώτο χαρακτήρα της συμβολοσειράς, που σε αυτήν την περίπτωση είναι το γράμμα “H”.
Αυτό το παράδειγμα εμφανίζει τον δεύτερο χαρακτήρα στο myString:
#include <iostream> #include <string> using namespace std; int main() { string myString = "Hello"; cout << myString[1]; // Εκτύπωση του δεύτερου χαρακτήρα του myString return 0; }
Στον κώδικα αυτόν, χρησιμοποιούμε τη βιβλιοθήκη iostream
για εισαγωγή και έξοδο δεδομένων και τη βιβλιοθήκη string
για τη χρήση του τύπου δεδομένων string
.
Στην συνάρτηση main
, ορίζουμε μια μεταβλητή myString
τύπου string
και την αρχικοποιούμε με την τιμή “Hello”. Έπειτα, με τη βοήθεια του τελεστή []
, αναφερόμαστε στον δεύτερο χαρακτήρα του myString
και τον εκτυπώνουμε με τη χρήση της συνάρτησης cout
.
Η έξοδος του προγράμματος θα είναι ο δεύτερος χαρακτήρας του myString
, δηλαδή το γράμμα “e”.
Για να αλλάξετε την τιμή ενός συγκεκριμένου χαρακτήρα σε μια συμβολοσειρά, αναφερθείτε στον αριθμό δείκτη και χρησιμοποιήστε μονά εισαγωγικά:
#include <iostream> #include <string> using namespace std; int main() { string myString = "Hello"; // Δημιουργία μιας μεταβλητής τύπου string με την αρχική τιμή "Hello" myString[0] = 'J'; // Αλλαγή του πρώτου χαρακτήρα του myString από 'H' σε 'J' cout << myString; // Εκτύπωση της τιμής του myString στην οθόνη return 0; }
Ο παραπάνω κώδικας προκαλεί την αλλαγή του πρώτου χαρακτήρα μιας συμβολοσειράς (myString
) από ‘H’ σε ‘J’ και εκτυπώνει το αποτέλεσμα στην οθόνη.
Αναλυτικότερα, ο κώδικας περιλαμβάνει τα εξής βήματα:
- Εισαγωγή των απαραίτητων βιβλιοθηκών, όπως η
iostream
και ηstring
. - Ορισμός της συνάρτησης
main
, η οποία είναι η εισόδου του προγράμματος. - Δημιουργία μιας μεταβλητής
myString
τύπουstring
με αρχική τιμή “Hello”. - Αλλαγή του πρώτου χαρακτήρα της συμβολοσειράς
myString
από ‘H’ σε ‘J’ με την εντολήmyString[0] = 'J';
. - Εκτύπωση της τιμής της μεταβλητής
myString
με τη χρήση της εντολήςcout << myString;
.
Επομένως, ο κώδικας θα εκτυπώσει στην οθόνη τη συμβολοσειρά “Jello”, αφού ο πρώτος χαρακτήρας (‘H’) έχει αλλάξει σε ‘J’.
[adinserter block=”4″]
Για να αποφευχθεί ένα πρόβλημα στη γλώσσα C++, πρέπει να χρησιμοποιείτε τον χαρακτήρα απόκλισης backslash () για να αντιμετωπίσετε την προβληματική χρήση εισαγωγικών μέσα σε μια συμβολοσειρά. Αυτό γίνεται γιατί η C++ ερμηνεύει τα εισαγωγικά ως τερματικά σύμβολα για μια συμβολοσειρά.
Για παράδειγμα, αν έχετε την εξής συμβολοσειρά:
string txt = "We are the so-called "Vikings" from the north.";
Η C++ θα παρεξηγήσει τα εισαγωγικά μετά τη λέξη “so-called” και θα προκαλέσει ένα σφάλμα. Η λύση είναι να χρησιμοποιήσετε τον χαρακτήρα απόκλισης backslash () για να “αποδράσετε” τα εισαγωγικά, όπως εξηγείται παρακάτω:
string txt = "We are the so-called \"Vikings\" from the north.";
Με τη χρήση του χαρακτήρα απόκλισης backslash, η C++ θα αντιληφθεί ότι τα εισαγωγικά είναι μέρος της συμβολοσειράς και όχι τερματικά σύμβολα. Έτσι, η έξοδος του κώδικα θα είναι: “We are the so-called “Vikings” from the north.”.
Οι χαρακτήρες διαφυγής (escape characters) χρησιμοποιούνται για να εισάγουν ειδικούς χαρακτήρες σε ένα αλφαριθμητικό. Ορίστε μια λίστα με κάποιους από τους πιο συχνά χρησιμοποιούμενους χαρακτήρες διαφυγής:
Χαρακτήρας Διαφυγής | Αποτέλεσμα | Περιγραφή |
---|---|---|
\n | Νέα γραμμή | Δημιουργεί μια νέα γραμμή |
\t | Στοίχιση | Δημιουργεί μια καρτέλα (tab) |
\r | Επιστροφή | Δημιουργεί ένα χαρακτήρα επιστροφής (carriage return) |
\\” | “ | Δημιουργεί έναν χαρακτήρα εισαγωγικών (double quote) |
\’ | ‘ | Δημιουργεί έναν χαρακτήρα αποστροφής (single quote) |
\\ | \ | Δημιουργεί έναν χαρακτήρα αντίστροφης κάθετου (backslash) |
Είναι δυνατόν να χρησιμοποιήσετε τον τελεστή εξαγωγής >> στο cin για να εμφανίσετε μια συμβολοσειρά που εισήγαγε ο χρήστης:
#include <iostream> #include <string> using namespace std; int main() { string fullName; // Δημιουργία μεταβλητής fullName για την αποθήκευση του ονόματος cout << "Enter your full name: "; // Εμφάνιση μηνύματος ζητώντας το πλήρες όνομα getline (cin, fullName); // Ανάγνωση του πλήρους ονόματος από τον χρήστη και αποθήκευσή του στη μεταβλητή fullName cout << "Your name is: " << fullName; // Εμφάνιση του ονόματος που δόθηκε από τον χρήστη return 0; }
Ο παραπάνω κώδικας ζητά από τον χρήστη να εισάγει το πλήρες όνομά του και στη συνέχεια εμφανίζει το όνομα που δόθηκε. Ακολουθούν τα βήματα που περιγράφουν τη λειτουργία του κώδικα:
- Αρχικά, συμπεριλαμβάνονται οι απαραίτητες βιβλιοθήκες
<iostream>
και<string>
. - Στη συνέχεια, η συνάρτηση
main()
δηλώνεται ως σημείο εκκίνησης του προγράμματος. - Δημιουργείται μια μεταβλητή
fullName
τύπουstring
, η οποία θα χρησιμοποιηθεί για την αποθήκευση του ονόματος που θα εισαχθεί από τον χρήστη. - Εμφανίζεται το μήνυμα
"Enter your full name: "
, ζητώντας από τον χρήστη να εισάγει το πλήρες όνομά του. - Η συνάρτηση
getline()
χρησιμοποιείται για να διαβάσει τη γραμμή που εισάγει ο χρήστης από το πληκτρολόγιο και να αποθηκεύσει την τιμή στη μεταβλητήfullName
. - Τέλος, εμφανίζεται το μήνυμα
"Your name is: "
ακολουθούμενο από την τιμή της μεταβλητήςfullName
, που περιέχει το όνομα που δόθηκε από τον χρήστη. - Το πρόγραμμα ολοκληρώνεται και επιστρέφει την τιμή 0, υποδεικνύοντας ότι το πρόγραμμα εκτελέστηκε επιτυχώς.
Αν ο χρήστης εισάγει, για παράδειγμα, το όνομα “John Smith”, τότε το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:
Enter your full name: John Smith Your name is: John Smith
Το πρόγραμμα θα ζητήσει από τον χρήστη να εισάγει το πλήρες όνομά του και θα εμφανίσει την ίδια την εισαγωγή του χρήστη, προσθέτοντας το μήνυμα “Your name is: ” μπροστά από αυτήν.
Ωστόσο, το cin θεωρεί ένα κενό (κενά, tab κ.λπ.) ως χαρακτήρα λήξης, που σημαίνει ότι μπορεί να εμφανίσει μόνο ένα μόνο λέξη (ακόμη κι αν πληκτρολογήσετε πολλές λέξεις):
#include <iostream> #include <string> using namespace std; int main() { string firstName; // Δημιουργία μεταβλητής για το όνομα cout << "Enter your first name: "; // Εκτύπωση μηνύματος cin >> firstName; // Ανάγνωση του ονόματος από το χρήστη cout << "Hello, " << firstName << "!\n"; // Εκτύπωση χαιρετισμού με το όνομα return 0; }
Ο παραπάνω κώδικας πραγματοποιεί τις εξής ενέργειες:
- Αρχικά, συμπεριλαμβάνονται οι απαραίτητες βιβλιοθήκες (
<iostream>
και<string>
) που παρέχουν τις απαραίτητες λειτουργίες για είσοδο και έξοδο και για τη χρήση συμβολοσειρών αντίστοιχα. - Ορίζεται η συνάρτηση
main()
, η οποία είναι η κύρια συνάρτηση εκτέλεσης του προγράμματος. - Δημιουργείται μια μεταβλητή με όνομα
firstName
, η οποία έχει τύποstring
και χρησιμοποιείται για την αποθήκευση του ονόματος του χρήστη. - Χρησιμοποιώντας την εντολή
cout << "Enter your first name: ";
, εμφανίζεται ένα μήνυμα προτροπής στον χρήστη, ζητώντας το όνομά του. - Με τη χρήση της εντολής
cin >> firstName;
, ο χρήστης καλείται να εισάγει το όνομά του, το οποίο αποθηκεύεται στη μεταβλητήfirstName
. - Τέλος, με τη χρήση της εντολής
cout << "Hello, " << firstName << "!\n";
, εμφανίζεται ένα μήνυμα καλωσορίσματος, ενσωματώνοντας το όνομα που εισήγαγε ο χρήστης. - Η συνάρτηση
main()
επιστρέφει την τιμή 0, υποδεικνύοντας ότι το πρόγραμμα ολοκληρώθηκε επιτυχώς.
Συνολικά, ο παραπάνω κώδικας ζητά από το χρήστη να εισάγει το όνομά του και στη συνέχεια εμφανίζει ένα μήνυμα καλωσορίσματος που περιλαμβάνει το εισαγμένο όνομα.
Εάν εκτελέσετε τον παραπάνω κώδικα, το αποτέλεσμα που θα εμφανιστεί στην οθόνη θα είναι:
Enter your first name: [Εισάγετε το όνομά σας εδώ] Hello, [Όνομα που εισάγατε]!
Η ακριβής μορφή της έξοδης θα εξαρτηθεί από το πρόγραμμα που χρησιμοποιείτε για την εκτέλεση του κώδικα. Ο χρήστης θα πρέπει να εισάγει το όνομά του μετά την προτροπή “Enter your first name: “, και στη συνέχεια θα εμφανιστεί το μήνυμα καλωσορίσματος που περιλαμβάνει το όνομα που εισήγαγε.
Παρακάτω παρατίθεται ο παραπάνω κώδικας με τη συναρτησιακότητα getline()
και τη χρήση της std::
για αποφυγή της χρήσης του using namespace std
:
#include <iostream> #include <string> int main() { std::string firstName; // Δημιουργία μεταβλητής firstName τύπου string για την αποθήκευση του ονόματος std::cout << "Enter your first name: "; // Εκτύπωση μηνύματος για την εισαγωγή του ονόματος std::getline(std::cin, firstName); // Ανάγνωση του ονόματος που δίνει ο χρήστης από το πληκτρολόγιο και αποθήκευσή του στην μεταβλητή firstName std::cout << "Hello, " << firstName << "!\n"; // Εκτύπωση χαιρετισμού με το όνομα που δόθηκε return 0; // Επιστροφή της τιμής 0 για ολοκλήρωση του προγράμματος }
Ο παραπάνω κώδικας σας ζητά να εισάγετε το όνομά σας και στη συνέχεια εκτυπώνει έναν χαιρετισμό με το όνομα που δώσατε.
Οι βήματα που ακολουθεί ο κώδικας είναι τα εξής:
- Δημιουργείται μια μεταβλητή
firstName
τύπουstring
, η οποία θα χρησιμοποιηθεί για να αποθηκεύσει το όνομα που θα εισαχθεί. - Εμφανίζεται ένα μήνυμα που ζητάει από τον χρήστη να εισάγει το όνομά του.
- Το όνομα που δίνει ο χρήστης εισάγεται με τη χρήση της συνάρτησης
getline
και αποθηκεύεται στη μεταβλητήfirstName
. - Εμφανίζεται ένας χαιρετισμός με το όνομα που δόθηκε, χρησιμοποιώντας τη συνάρτηση
cout
για την εκτύπωση του μηνύματος. - Το πρόγραμμα ολοκληρώνεται και επιστρέφει την τιμή 0.
Ουσιαστικά, ο κώδικας σας επιτρέπει να επικοινωνήσετε με το χρήστη, να λάβετε το όνομά του και να το εμφανίσετε ως μέρος ενός χαιρετισμού.