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



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

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

#define, 70, 575 #elif, 580 #else, 580 #endif, 580 #error, 584 #if, 580 #ifdef, 583 #ifndef, 580, 583 #include, 70, 227, 574 #undef, 579

Τμήμα Πληροφορικής & Επικοινωνιών Δρ. Θεόδωρος Γ. Λάντζος

Διάλεξη 8η: Αλφαριθμητικά (strings)

Μεθόδων Επίλυσης Προβλημάτων

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

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

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

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

Εισαγωγή στους Δείκτες (Pointers)

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

Προγραμματισμός Ι. Θεματική ενότητα 6: Πίνακες αλφαριθμητικά

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

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

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

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

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

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

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

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

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

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

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

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

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

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

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

Βαθμός Σχόλια. lab6 PASS PASS. - Πολύ καλή δουλειά, αλλά προσπάθησε να κάνεις την άσκηση χρησιµοποιώντας συναρτήσεις από το string.

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

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Συναρτήσεις και Πίνακες

Η Γλώσσα Προγραμματισμού C (Μέρος 3 - Συναρτήσεις, Πίνακες και Δείκτες) Εισαγωγή στις Συναρτήσεις

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

242 -ΕισαγωγήστουςΗ/Υ

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

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

Εισαγωγή στον δομημένο προγραμματισμό

242 -ΕισαγωγήστουςΗ/Υ

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

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

Προγραμματισμός HY: Γλώσσα Προγραμματισμού C

ΕΠΛ232 Προγραμματιστικές Τεχνικές και Εργαλεία Συμβολοσειρές, Δείκτες και Παραδείγματα (Κεφάλαιο 13, KNK-2ED)

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

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

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

Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων. 19. Αλφαριθμητικά II. Ιωάννθσ Κατάκθσ. ΕΠΛ 032: Προγραμματιςμόσ Μεκόδων Επίλυςθσ Προβλθμάτων

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

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

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

Αρχές Προγραμματισμού

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

Επανάληψη για τις Τελικές εξετάσεις

Κεφάλαιο Αλφαριθµητικές Σειρές Χαρακτήρων (Strings)

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

Δομές Δεδομένων και Αλγόριθμοι

int abs( int x ), επιστρέφει την απόλυτη τιμή του ακεραίου x Πχ abs( 11) ισούται με 11, abs(34) ισούται με 34 double fb( fabs( double x ), επιστρέφει

char name[5]; /* define a string of characters */

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

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

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

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

lab7grades -Σωστή χρήση της sprintf -Σωστά ανιχνεύετε τον χαρακτήρα που πρέπει να αφαιρέσετε. -Σωστή µεταφορά στοιχείων µια θέση αριστερά.

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

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

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

Συμβολοσειρές Ορίσματα στη main()

Φροντιςτήριο. Linked-List

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

12. ΑΛΦΑΡΙΘΜΗΤΙΚΑ. υο είδη αλφαριθµητικών Τα αλφαριθµητικά της C πίνακες τύπου char Ta αντικείµενα της κλάσης string

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

Προγραµµατισµός Ι Αλφαριθµητικά Πανεπιστήµιο Πελοποννήσου Τµήµα Πληροφορικής & Τηλεπικοινωνιών Προγραµµατισµός Ι 1 Νικόλαος Δ.

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Αρχές Προγραμματισμού

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

Συναρτήσεις διαχείρισης αλφαριθμητικών

Επεξεργασία κειμένου και συμβολοσειρών σε C

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

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

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

Προγραμματισμό για ΗΜΥ

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

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

ΠΛΗ111. Ανοιξη Μάθηµα 1 ο Ανασκόπηση της Γλώσσας Προγραµµατισµού C. Τµήµα Ηλεκτρονικών Μηχανικών και Μηχανικών Υπολογιστών Πολυτεχνείο Κρήτης

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

int a[5]; a[0] a[1] a[2] a[3] a[4] 15/10/2009

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

ΠΙ Ν Α Κ Ε Σ (arrays)

είκτες και Πίνακες (2)

Στόχοι και αντικείμενο ενότητας. Πέρασμα Πίνακα σε Συνάρτηση (συν.) Πέρασμα Πίνακα σε Συνάρτηση. #8.. Ειδικά Θέματα Αλγορίθμων

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

Τίτλος Μαθήματος: Ηλεκτρονικοί Υπολογιστές IΙΙ. Διδάσκων: Επίκουρος Καθηγητής Αθανάσιος Σταυρακούδης

Περιεχόμενα. 1 Η ιστορία της C Μια επισκόπηση της C Πρόλογος...xvii

Περιεχόμενα. 1 Η ιστορία της C Μια επισκόπηση της C Πρόλογος...xvii

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

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

HY150a Φροντιστήριο 3 24/11/2017

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

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

Δομές Δεδομένων & Αλγόριθμοι

Transcript:

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

Συµβολοσειρέςστην C/C++ 2 Χαρακτήρες 'a', 'z', '0', Χαρακτήρες σαν int 'z' επίσης αναπαριστά την ακεραία τιµή του χαρακτήρα z Strings-Συµβολοσειρές Σειρές από χαρακτήρες σαν µια ενιαία µονάδα Περιέχουνγράµµατα, ψηφία, ειδικούςχαρακτήρες (*, /, $) Stringσ γράφονται σε διπλά εισαγωγικά "Hello" Strings είναι πίνακες χαρακτήρων String είναι δείκτης στον πρώτο χαρακτήρα String είναι η διεύθυνση του πρώτου χαρακτήρα

3 Συµβολοσειρέςστην C ήλωση Στην C οι συµβολοσειρές δηλώνονται µε ένα πίνακα τύπου char char color[] = "blue"; ηλώνονταικεµεχρήσηδεικτώνπουόµωςδενέχουµεδειέως τώρα char *colorptr = "blue"; //µε * δηλώνουµε δείκτες Το τέλος των strings είναι ο χαρακτήρας '\0 και πρέπει να θυµόµαστε και υπάρχει χώρος στον πίνακα και για αυτόν τον χαρακτήρα Ο πίνακας color έχει 5 στοιχεία Είσοδος/Έξοδος strings Στην C υπάρχουν πολλές βασικές συναρτήσεις για είσοδο έξοδο αλυσίδων, όπως printf, scanf, puts, gets, κ.α

4 ήλωση Συµβολοσειρέςστην C++ Στην C++ υπάρχουν εκτός από τις συµβολοσειρές που υπάρχουν στην C, και ειδική κλάση string για αντικείµενα τυπου συµβολοσειρά (string) char color[] = "blue"; string color="blue"; Για αλυσίδες τύπου C υπάρχουν συναρτήσεις στην βιβλιοθήκη <cstring> ενώγιατααντικείµενα string της C++ στην <string> Είσοδος/Έξοδος strings Στην C++ βασικά χρησιµοποιούµε τις δυνατότητες των cin και cout

Συµβολοσειρέςστην C++ 5 Βιβλιοθήκες για συµβολογειρες #include <cstring> #include <cctype> #include <string>

<cctype> - Βιβλιοθήκη συναρτήσεων για χειρισµό χαρακτήρων Υπάρχουν πολλές συναρτήσεις για χειρισµό χαρακτήρων στο header αρχείο <cctype>. Μερικές από αυτές είναι. isalnum Ελέγχει για αλφαβητικό ή ψηφίο isalpha Ελέγχει για αλφαβητικό isascii Ελέγχει για ASCII iscntrl Ελέγχει για control χαρακτήρα isdigit Ελέγχει για 0 έως 9 isgraph Ελέγχει για εκτυπώσιµους πλην του κενού islower Ελέγχει για µικρά isprint Ελέγχει για χαρακτήρες που εκτυπώνονται ispunct Ελέγχει για χαρακτήρες στίξης isspace Ελέγχει για κενό isupper Ελέγχει για κεφαλαίο isxdigit Ελέγχει για δεκαεξαδικό toascii Μετατρέπει σε ascii κωδικό tolower Μετατρέπει σε µικρά toupper Μετατρέπει σε κεφαλαία 6

<cstring> - Βιβλιοθήκη συναρτήσεων για χειρισµό συµβολοσειρών της C 7 Υπάρχουν πολλές συναρτήσεις για χειρισµό συµβολοσειρών της C στο header αρχείο <cstring>. Μερικές από αυτές είναι. strcpy Αντιγραφή µιας αλυσίδας σε άλλη strncpy Αντιγραφή n χαρακτήρων µιας αλυσίδας σε άλλη strcat Συγκόλληση δυο αλυσίδων strncat άλλης Συγκόλληση n χαρακτήρων µιας αλυσίδας στο τέλος µιας strchr Βρίσκει την θέση της πρώτης εµφάνισης ενός χαρακτήρα σε µια αλυσίδα strrchr Βρίσκει την θέση της τελευταίας εµφάνισης ενός χαρακτήρα σε µια αλυσίδα strcmp Σύγκριση δυο αλυσίδων strncmp Σύγκριση n χαρακτήρων µιας αλυσίδας µε µια άλλη strcmpi Σύγκριση δυο αλυσίδων χωρίς ταίριασµα πεζώνκεφαλαίων strlen Μήκος αλυσίδας strstr Βρίσκει την θέση µιας αλυσίδας σε µια άλλη strupr Μετατρέπει µια αλυσίδα σε όλα κεφαλαία strlwr Μετατρέπει µια αλυσίδα σε όλα πεζά strrev Αντιστροφή αλυσίδας

<cstring> - Βιβλιοθήκη συναρτήσεων για χειρισµό συµβολοσειρών της C 8 //strings c - stringsc.cpp #include <iostream> #include <cstdlib> #include <cstring> using namespace std; int main(int argc, char *argv[]) { char str1[10] = "Good"; char str2[10] = "Morning"; char str3[10]; int len ; cout<<str1<<" "<<str2<<endl; //output str1,str2 strcpy( str3, str1); // copy str1 into str3 cout << "strcpy(str3, str1): " << str3 << endl; strcat( str1, str2); // concatenates str1 and str2 cout << "strcat( str1, str2): " << str1 << endl; cout<<"input a string of length at most 9: "; gets(str3); // Input cout<<"str3 is now: "<<str3<<endl; len = strlen(str3); // Length cout << "strlen(str3) : " << len << endl; system("pause"); return 0;

Συµβολοσειρές - C 9 //strings C #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) { char word[] = { 'H','e','l','l','o','\0' }; for(int i = 0; i < 5; ++i ) cout<<"word["<<i<<"] is "<<word[i]<<endl; cout<<word<<endl; system("pause"); return 0;

Συµβολοσειρές - C 10 //strings C #include <iostream> #include <cstdlib> using namespace std; // character arrays int main(int argc, char *argv[]) { char s1[] = {'H','e','l','l','o','\0'}; char s2[6] = {'H','e','l','l','o','\0'}; char s3[6] = {"Hello"}; char s4[] = {"Hello there"}; char s5[] = "Hello again"; cout<<s1<<"\t"<<s2<<"\t"<<s3<<"\t"<<s4<<"\t"<<s5<<endl; cout<<"seventh char of s5 is-> "<<s5[6]<<endl; system("pause"); return 0;

Συµβολοσειρές - C 11 //strings C #include <iostream> #include <cstdlib> using namespace std; // ëßãá strings int main(int argc, char *argv[]) { system("chcp 1253"); char whatname[] = "What is your name? "; char whichtown[] = "Where do you live? "; char name [80]; string town; cout << whatname; cin >> name; // name ùñßò êåíü cout << whichtown; cin >> town; // town ùñßò êåíü cout << "Hello, " << name; cout << " from " << town << "!\n";; system("pause"); return 0;

Συµβολοσειρές - C //strings C #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) {char word[20]; string s; word[0] = 'C'; word[1] = '+'; word[2] = '+'; word[3] = ' '; word[4] = 'i'; word[5] = 's'; word[6] = ' '; word[7] = 'f'; word[8] = 'u'; word[9] = 'n'; word[10] = '\0'; cout<<"the string in the char array word[] is: "<<word<<endl; cout<<"give a string: "; cin>>word; //no blanks cin.ignore(80, '\n'); //ignores 80 characters or to a newline, //whichever comes first cout<<"the string in the char array word[] is: "<<word<<endl; cout<<"give a string: "; cin.getline(word,20); //can have blanks cout<<"the string in the char array word[] is: "<<strupr(word)<<endl; cout<<"give a string: "; gets(word); // only c strings puts(word); // only c strings system("pause"); return 0; 12

<string> - Συµβολοσειρές στην C++ 13 Στην C++ ορίζονται και αντικείµενα string που ανήκουν στην κλάση string. Για να χρησιµοποιήσουµε τις µεθόδους που υπάρχουν για τα αντικείµενα αυτά πρέπει να κάνουµε #include <string> Στην κλάση <string> ορίζονται πολλές µέθοδοι (συναρτήσεις) που µπορούµε να χρησιµοποιήσουµε. Η επεξεργασία των συµβολοσειρών που ορίζονται σαν αντικείµενα string στην C++ γίνεται µε κάπως πιο φυσικό τρόποαπότηναπλή C.

<string> - Συµβολοσειρές στην C++ 14 Μπορούµε να χρησιµοποιήσουµε πολλούς υπερφορτωµένουςτελεστέςόπως =, [], +, συγκρίσεις, και άλλες µεθόδους που ορίζονται στηνκλάση <string> Στον αντικειµενοστραφή προγραµµατισµό η εφαρµογή µίας µεθόδου σε ένα αντικείµενο γίνεται µε τον τελεστή τελεία (.)

<string> - Συµβολοσειρές στην C++ //strings c++ stringscpp.cpp #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(int argc, char *argv[]) { string str1 = "Good"; string str2 = "Morning"; string str3; int len ; cout<<str1<<" "<<str2<<endl; //output str1,str2 str3 = str1; // copy str1 into str3 cout << "str3 : " << str3 << endl; str3 = str1 + str2; // concatenates str1 and str2 cout << "str1 + str2 : " << str3 << endl; cout<<"input a string: "; getline(cin,str3); // input cout<<"str3 is now: "<<str3<<endl; len = str3.size(); // lenghth of str3 cout << "str3.size() : " << len << endl; cout<<"input a string: "; cin>>str3; // input cout<<"str3 is now: "<<str3<<endl; len = str3.size(); // lenghth of str3 cout << "str3.size() : " << len << endl; system("pause"); return 0; 15

Συµβολοσειρές στην C++ 16 //strings c++ stringsoperatorscpp.cpp #include <iostream> #include <cstdlib> #include <string> using namespace std; int main(int argc, char *argv[]) { string str1 = "good"; string str2 = "morning"; string str3 = "everybody", str4, space=" "; int len ; cout<<"input a string: "; getline(cin, str4); // input cout<<"str4 is: "<<str4<<endl; //output str4 len = str4.size(); // lenghth of str4 cout << "str4.size(): " << len << endl; cout << "set str4 = str1 + space + str2 + space + str3: " << endl; str4 = str1 + space + str2 + space + str3; // concatenation with + cout << "str4 now is: "<<str4<<endl; len = str4.length(); // lenghth of str4 cout << "str4.length(): " << len << endl; cout << "The last character of str4 is: "<<str4[len-1]<<endl; cout << "The last character of str4 is: "<<str4.at(len-1)<<endl; if (str1<str2) cout<<str1<<"<"<<str2<<endl; else cout<<str2<<"<="<<str1<<endl; char alpha[27] = {'a','b','c','d','e','f','g','h','i', 'j','k','l','m','n','o','p','q','r', 's','t','u','v','w','x','y','z',' '}; int alphafreq[27]={0}; cout<<"chatacters in str4: "; len=str4.length(); for (int i=0; i<len; i++) if (i<len-1) cout<<str4[i]<<","; else cout<<str4[i]<<endl; cout<<"frequency of chatacters in str4"<<endl; for (int i=0; i<len; i++) {char ch=str4.at(i); for (int j=0; j<27; j++) {if (ch==alpha[j]) alphafreq[j]++;} for (int j=0; j<27; j++) if (alphafreq[j]!=0) cout<<alpha[j]<<": "<<alphafreq[j]<<" times"<<endl; system("pause"); return 0;

Παράµετροι Συµβολοσειρές στην C++ 17 /* bubble sort and print function with string param*/ #include <iostream> #include <cstdlib> using namespace std; void bubblesort(int [], int); void printarray(int a[], int SIZE, string s); int main(int argc, char *argv[]) { int SIZE=10; string s1,s2; int a[] = {62, 18, 24, 15, 100, 27, 89, 38, 45, 34}; int i, pass, temp; s1="o dedomenos pinakas"; printarray(a,size,s1); bubblesort(a,size); s2="o taksinomhmenos pinakas"; printarray(a,size,s2); system("pause"); return 0; void bubblesort(int a[], int SIZE) { int temp; for (int pass = 1; pass <= SIZE - 1; pass++) { for (int i = 0; i <= SIZE - pass - 1; i++) if (a[i] > a[i + 1]) { temp = a[i]; a[i] = a[i + 1]; a[i + 1] = temp; } void printarray(int a[], int SIZE, string s) {cout<<s<<" me "<<SIZE<<" stoixeia einai"<<endl; for (int i = 0; i <= SIZE - 1; i++) cout<<a[i]<<" "; cout<<"\n";