Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Σχετικά έγγραφα
Πίνακες (Arrays) Εισαγωγή στη C++

Δομές Επανάληψης. Εισαγωγή στη C++

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Γ7.8 Εγγραφές (Structures) Γ Λυκείου Κατεύθυνσης

Δισδιάστατοι Πίνακες (2D Arrays) Εισαγωγή στη C++

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Προγραμματισμός Υπολογιστών με C++

Προγραµµατιστικές Τεχνικές

Προγραμματισμός Υπολογιστών με C++

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΚΑΙ ΠΙΝΑΚΕΣ

Προγραμματισμός Υπολογιστών με C++

Συµβολοσειρές - Strings

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

4.1 Αναζήτηση. Εισαγωγή στη C++

ΥΠΟΥΡΓΕΙΟ ΠΑΙΔΕΙΑΣ ΚΑΙ ΠΟΛΙΤΙΣΜΟΥ ΥΠΗΡΕΣΙΑ ΕΞΕΤΑΣΕΩΝ ΠΑΓΚΥΠΡΙΕΣ ΕΞΕΤΑΣΕΙΣ 2018 ΤΟ ΕΞΕΤΑΣΤΙΚΟ ΔΟΚΙΜΙΟ ΑΠΟΤΕΛΕΙΤΑΙ ΑΠΟ ΔΕΚΑΤΡΕΙΣ (13) ΣΕΛΙΔΕΣ.

Εισαγωγή στη γλώσσα προγραμματισμού C++

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Δομή του προγράμματος. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ Τμήμα Πληροφορικής

Συναρτήσεις (Functions) Εισαγωγή στη C++

Διαδικασιακός Προγραμματισμός

Εισαγωγή στην πληροφορική

Streams Input / Output in C++ George Kastrinis

Παίρνοντας Αποφάσεις 1

Ινστιτούτο Επαγγελµατική Κατάρτιση Κορυδαλλού "ΤΕΧΝΙΚΟΣ ΣΥΣΤΗΜΑΤΩΝ ΥΠΟΛΟΓΙΣΤΩΝ" (Ερωτήσεις Πιστοποίησης στην γλώσσα προγραµµατισµού C)

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Αναφορές, είκτες και Αλφαριθμητικά

Εργαστήριο 2ο. Περίγραμμα Εργαστηριακής Άσκησης

Αντικειμενοστραφείς Γλώσσες Προγραμματισμού C++ / ROOT

Τύποι Δεδομένων Είσοδος/Έξοδος

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Β7.1.4 Δομές Επανάληψης. Β Λυκείου Κατεύθυνσης

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language)

Η Γλώσσα Προγραµµατισµού C++ (The C++ Programming Language) Ιστοσελίδα του µαθήµατος. Περιεχόµενα. ηµήτριος Κατσαρός, Ph.D. Αλφαριθµητικά Κλάση string

Συμβολοσειρές ΣΥΜΒΟΛΟΣΕΙΡΕΣ. Γεώργιος Παπαϊωάννου ( )

3 η Διάλεξη C++ - Βασικοί τύποι δεδομένων. Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Δομές δεδομένων (Structures) Εισαγωγή στη C++

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Η γλώσσα προγραμματισμού C

Κλήση Συναρτήσεων ΚΛΗΣΗ ΣΥΝΑΡΤΗΣΕΩΝ. Γεώργιος Παπαϊωάννου ( )

Η εντολή if-else. Η απλή μορφή της εντολής if είναι η ακόλουθη: if (συνθήκη) { Η γενική μορφή της εντολής ifelse. εντολή_1; εντολή_2;..

ΣΤΟΙΧΕΙΑ ΤΗΣ ΓΛΩΣΣΑΣ C++ Constructors, Destructors, Pointers IO Streams, File Streams

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Προγραμματισμός Ι. Χαρακτήρες. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Προγραμματισμός Υπολογιστών με C++

Η γλώσσα προγραμματισμού C

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τύποι δεδομένων ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ ΠΡΑΞΕΙΣ ΜΕΤΑΒΛΗΤΕΣ. Ακέραιοι αριθμοί (int) Πράξεις μεταξύ ακεραίων αριθμών

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 1 Συμβολοσειρές, Πίνακες, Δείκτες

Προγραμματισμός Υπολογιστών με C++

Δομημένος Προγραμματισμός

Αντικειμενοστραφής Προγραμματισμός

Η γλώσσα προγραμματισμού C

Το πρόγραμμα θα τυπώνει και τους τρεις πίνακες.

Εισαγωγή στη γλώσσα προγραμματισμού C++

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κεφάλαιο 2.6: Είσοδος / Έξοδος εδοµένων, Μορφοποίηση εδοµένων Εξόδου. ( ιάλεξη 7) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Στοιχειώδης προγραμματισμός σε C++

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

Η γλώσσα προγραμματισμού C

ΑΣΚΗΣΗ 7: ΑΛΦΑΡΙΘΜΗΤΙΚΑ

Μονοδιάστατοι πίνακες

ΕΙΣΑΓΩΓΗ ΣΤΟΝ ΔΟΜΗΜΕΝΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟ

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Τύποι δεδομένων, μεταβλητές, πράξεις. Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7) Είσοδος/ Έξοδος

Κεφάλαιο 2.6: Είσοδος / Έξοδος Δεδομένων, Μορφοποίηση Δεδομένων Εξόδου. (Διάλεξη 7)

2 η Διάλεξη C++ Δρ. Χρήστος Δρόσος ΑΕΙ ΠΕΙΡΑΙΑ ΤΤ ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΜΟΥ

Εισαγωγή στον προγραμματισμό. Τμήμα Πληροφορικής & Επικοινωνιών ΤΕΙ Σερρών Εργαστήριο 2

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Πίνακες Κλάσεις και Αντικείμενα

Ανάπτυξη και Σχεδίαση Λογισμικού

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Προγραμματισμός Ι. Κλάσεις και Αντικείμενα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

ΥΠΟΛΟΓΙΣΤΕΣ ΙI. Άδειες Χρήσης. Συναρτήσεις II Διδάσκοντες: Αν. Καθ. Δ. Παπαγεωργίου, Αν. Καθ. Ε. Λοιδωρίκης

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Κεφάλαιο Αλφαριθμητικές Σειρές Χαρακτήρων (Strings) (Διάλεξη 20) 1) Strings στη C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Χωρική Βάση δεδοµένων Autocad

ΚΕΦΑΛΑΙΟ 9 ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ

Εισαγωγή στον Προγραμματισμό με C++

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Οντοκεντρικός Προγραμματισμός

Δομημένος Προγραμματισμός. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων

ΥΠΟΛΟΓΙΣΤΕΣ ΙΙ. Τι είναι οι πίνακες; Μονοδιάστατοι πίνακες. Απλές μεταβλητές: Κεντρική μνήμη

Προγραμματισμός Η/Υ (ΤΛ2007 )

Προγραμματισμός Ι. Πίνακες, Δείκτες, Αναφορές και Δυναμική Μνήμη. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Οντοκεντρικός Προγραμματισμός

ΗΥ-150. Προγραμματισμός

ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

H ΓΛΩΣΣΑ C. Μάθηµα 16: Είσοδος/Έξοδος: Συναρτήσεις Eξόδου. ηµήτρης Ψούνης

ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΑΤΙΣΜΟΣ Α (C++) ΤΜΗΜΑ ΑΥΤΟΜΑΤΙΣΤΩΝ Δρ. Νικόλαος Ζ. Ζάχαρης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΑΤΡΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΗΛΕΚΤΡΟΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ

Τμήμα Μηχανικών Πληροφορικής και Τηλεπικοινωνιών

Προγραμματισμός Ι (ΗΥ120)

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Διαδικασιακός Προγραμματισμός

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Transcript:

Γ7.2 Συμβολοσειρές (Strings) Γ Λυκείου Κατεύθυνσης

Εισαγωγή Στη C++ υπάρχει η δυνατότητα να δηλώσουμε μία συμβολοσειρά ως αντικείμενο, χρησιμοποιώντας τη βιβλιοθήκη <string>. Επειδή οι συμβολοσειρές είναι αντικείμενα και όχι τύποι δεδομένων, συνεπάγεται ότι θα έχουν ιδιότητες και έτοιμες συναρτήσεις. Μετά τη δήλωση ενός αντικειμένου τύπου string, μπορούμε να το χειριστούμε ως πίνακα χαρακτήρων.

Δήλωση και χρήση συμβολοσειράς Η δήλωση μίας συμβολοσειράς γίνεται με τον ίδιο τρόπο που δηλώνουμε μεταβλητές, χρησιμοποιώντας το αναγνωριστικό string. Απαραίτητη προϋπόθεση είναι η δήλωση της βιβλιοθήκης <string>. #include<iostream> #include<string> using namespace std; int main(){ string onoma; cout << "What is your name?"<<endl; cin >> onoma; cout << "Hello " << onoma; return 0; }

Δήλωση και χρήση συμβολοσειράς Να σημειωθεί ότι τα strings δηλώνονται με διπλά εισαγωγικά ("), σε αντίθεση με τις μεταβλητές τύπου char που δηλώνονται με μονά εισαγωγικά ('). #include<iostream> #include<string> using namespace std; int main(){ string school = "Palouriotissa"; char letter = 'G'; cout << letter << " " << school; return 0; }

Παράδειγμα 2.1 Να δημιουργήσετε πρόγραμμα το οποίο να δέχεται το όνομα ενός χρώματος και να τυπώνει τη λέξη «Primary», σε περίπτωση που το χρώμα είναι κόκκινο, κίτρινο ή μπλε, διαφορετικά να τυπώνει «Not Primary». Λύση: https://ideone.com/s9fztb

Συμβολοσειρές - Πίνακες Χαρακτήρων Μία συμβολοσειρά είναι ουσιαστικά ένας πίνακας από χαρακτήρες και μπορούμε να έχουμε πρόσβαση σε οποιοδήποτε στοιχείο της, αναφέροντας τη θέση του. Ο πρώτος χαρακτήρας της συμβολοσειράς βρίσκεται στη θέση 0. Το παρακάτω πρόγραμμα τυπώνει τους 2 πρώτους χαρακτήρες της συμβολοσειράς test η οποία έχει αρχικοποιηθεί με τη λέξη «hello». https://ideone.com/grr6pj

Παράδειγμα 2.2 Να δημιουργήσετε πρόγραμμα το οποίο να δέχεται 2 συμβολοσειρές και να τυπώνει τον αριθμό 1, αν ξεκινούν με τον ίδιο χαρακτήρα, διαφορετικά να τυπώνει τον αριθμό 0. Λύση: https://ideone.com/7pj77t

Συναρτήσεις της βιβλιοθήκης string Για τις ανάγκες τους μαθήματος, θα χρησιμοποιήσουμε τις εξής συναρτήσεις της βιβλιοθήκης <string>: size() - επιστρέφει το μέγεθος της συμβολοσειράς clear() - διαγράφει το περιεχόμενο μίας συμβολοσειράς empty() - ελέγχει αν η συμβολοσειρά είναι άδεια getline() - διαβάζει ολόκληρη τη γραμμή

Παράδειγμα 2.3 - size() Να δημιουργήσετε πρόγραμμα το οποίο να δέχεται μία συμβολοσειρά και να τυπώνει το κάθε γράμμα της σε διαφορετική γραμμή. Λύση: https://ideone.com/brnbhb

Παράδειγμα 2.5 Δίνεται μία συμβολοσειρά που περιέχει πεζούς και κεφαλαίους χαρακτήρες του λατινικού αλφαβήτου. Να δημιουργήσετε πρόγραμμα το οποίο να δέχεται τη συμβολοσειρά και να δημιουργεί μία νέα συμβολοσειρά που να περιέχει μόνο τα κεφαλαία γράμματα της συμβολοσειράς που δόθηκε. Σε περίπτωση που δεν βρεθούν κεφαλαία γράμματα, να τυπώνεται το μήνυμα «No capital letters found». Σημείωση: Ο κώδικας ASCII των κεφαλαίων λατινικών γραμμάτων ξεκινά από το 65 (Α) μέχρι και το 90 (Z). Λύση: https://ideone.com/hkzoco

getline() Η συνάρτηση getline διαβάζει μία συμβολοσειρά μέχρι να συναντήσει αλλαγή γραμμής. Η συνάρτηση δέχεται 2 παραμέτρους. Η πρώτη παράμετρος αφορά στην μέθοδο εισαγωγής της συμβολοσειράς και η δεύτερη παράμετρος αφορά στο αντικείμενο όπου θα αποθηκευτεί η συμβολοσειρά. string st1; cin >> st1; cout << st1 << endl; string st2; getline(cin,st2); cout << st2; // Input: Hello world // Output: Hello // Input: Hello world // Output: Hello world

getline() Να δημιουργήσετε πρόγραμμα το οποίο να διαβάζει από το πληκτρολόγιο το ονοματεπώνυμο ενός μαθητή / μίας μαθήτριας και να το αποθηκεύει στη μεταβλητή τύπου συμβολοσειράς (string) με αναγνωριστικό student_name. Στη συνέχεια να το εμφανίζει στην οθόνη με τους χαρακτήρες αντεστραμμένους. Παράδειγμα εισόδου Hans Christian Andersen Παράδειγμα εξόδου nesredna naitsirhc snah Λύση: https://ideone.com/eeuqu6

Πίνακες συμβολοσειρών Μπορούμε να δηλώσουμε πίνακες με συμβολοσειρές με τον ίδιο τρόπο που θα δηλώναμε έναν πίνακα ακεραίων. Για παράδειγμα, η δήλωση: string st[10]; δημιουργεί έναν πίνακα με 10 συμβολοσειρές. Αν θέλουμε να τυπώσουμε τον 2ο χαρακτήρα της 3ης συμβολοσειράς του πίνακα, θα πρέπει να χρησιμοποιήσουμε την εντολή: cout << st[2][1]; όπου ο δείκτης [2] δείχνει τη συμβολοσειρά και ο δείκτης [1] τον χαρακτήρα.

Πίνακες συμβολοσειρών FqqDu4 i3vsffiqe WUWTDYGRSagyhGa WrLwHxyPDwfr CfmHtUhsdf QM7Xa4x78 rpejsvcccaasw NfX981gpAVfgyjuhwe ClF9DQyQKvty hkeobqsuqlrefgt cout << st[3][4]; // H cout << st[8][2]; // F cout << st[0][5]; // 4 for (int i=0; i<10; i++) cout << st[i][st[i].size()-1];

Παράδειγμα 2.5 Να δημιουργήσετε πρόγραμμα το οποίο να δέχεται 5 συμβολοσειρές και να τις αποθηκεύει στον πίνακα Α. Στη συνέχεια, να δημιουργεί και να εμφανίζει μία συμβολοσειρά που να περιέχει τον πρώτο χαρακτήρα από την κάθε συμβολοσειρά. Λύση: https://ideone.com/yn8gxm