Δπαλάιεςε Αιθαξηζκεηηθέο εηξέο Υαξαθηήξσλ (Strings) (Γηάιεμε 2) Γηδάζθσλ: Γεκήηξεο Εετλαιηπνύξ

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

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

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

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

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

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

Απαντήσεις θέματος 2. Παξαθάησ αθνινπζεί αλαιπηηθή επίιπζε ησλ εξσηεκάησλ.

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

Γοκή επαλάιευες Δληοιές Όζο & Μέτρης_όηοσ

Αιγόξηζκνη Γνκή επηινγήο. Πνιιαπιή Δπηινγή Δκθωιεπκέλεο Δπηινγέο. Δηζαγωγή ζηηο Αξρέο ηεο Δπηζηήκεο ηωλ Η/Υ. introcsprinciples.wordpress.

Ενδεικτικά Θέματα Στατιστικής ΙΙ

H ΜΑΓΕΙΑ ΤΩΝ ΑΡΙΘΜΩΝ

ΗΥ-150 Πξνγξακκατησκόο Ταμηλόκεσε θαη Αλαδήτεσε

Constructors and Destructors in C++

TOOLBOOK (μάθημα 2) Δεκηνπξγία βηβιίνπ θαη ζειίδσλ ΠΡΟΑΡΜΟΓΗ: ΒΑΛΚΑΝΙΩΣΗ ΔΗΜ. ΕΚΠΑΙΔΕΤΣΙΚΟ ΠΕ19 1 TOOLBOOK ΜΑΘΗΜΑ 2

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

Παιχνίδι γλωζζικής καηανόηζης με ζχήμαηα!

Βάσεις Δεδομέμωμ. Εξγαζηήξην V. Τκήκα Πιεξνθνξηθήο ΑΠΘ

ΔΕΟ 13. Ποσοτικές Μέθοδοι. θαη λα ππνινγίζεηε ην θόζηνο γηα παξαγόκελα πξντόληα. Να ζρεδηαζηεί γηα εύξνο πξντόλησλ έσο

ΘΔΚΑ ΡΖΠ ΑΛΑΓΛΩΟΗΠΖΠ

iii. iv. γηα ηελ νπνία ηζρύνπλ: f (1) 2 θαη

Απνηειέζκαηα Εξσηεκαηνινγίνπ 2o ηεηξάκελν

Να ζρεδηάζεηο ηξόπνπο ζύλδεζεο κηαο κπαηαξίαο θαη ελόο ιακπηήξα ώζηε ν ιακπηήξαο λα θσηνβνιεί.

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ Γευηέρα 11 Ηουνίου 2018 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ. (Ενδεικηικές Απανηήζεις)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΤΙΚΗ ΣΚΥΤΑΛΟΓΡΟΜΙΑ 2015 ΓΙΑ ΤΟ ΓΥΜΝΑΣΙΟ Τεηάπηη 28 Ιανουαπίου 2015 ΛΔΥΚΩΣΙΑ Τάξη: Α Γυμναζίου

ΓΗΑΓΩΝΗΣΜΑ ΣΤΑ ΜΑΘΖΜΑΤΗΚΑ. Ύλη: Μιγαδικοί-Σσναρηήζεις-Παράγωγοι Θεη.-Τετν. Καη Εήηημα 1 ο :

Α. Εηζαγσγή ηεο έλλνηαο ηεο ηξηγσλνκεηξηθήο εμίζσζεο κε αξρηθό παξάδεηγκα ηελ εκx = 2

Αντισταθμιστική ανάλυση

ΦΥΛΛΟ ΕΡΓΑΣΙΑΣ. Οξηδόληηα θαη θαηαθόξπθε κεηαηόπηζε παξαβνιήο

ΡΤΘΜΙΕΙ ΔΙΚΣΤΟΤ ΣΑ WINDOWS

Μνλνδηάζηαηνη Πίλαθεο Λπκέλεο Αζθήζεηο. Άζθεζε 1. Πνηά ζα είλαη ηα πεξηερόκελα ηνπ πίλαθα Α κεηά ηελ εθηέιεζε ηνπ παξαθάησ αιγνξίζκνπ;

ΠΑΡΑΡΣΗΜΑ Δ. ΔΤΡΔΗ ΣΟΤ ΜΔΣΑΥΗΜΑΣΙΜΟΤ FOURIER ΓΙΑΦΟΡΩΝ ΗΜΑΣΩΝ

Κευάλαιο 8 Μονοπωλιακή Συμπεριφορά- Πολλαπλή Τιμολόγηση

Γηζδηάζηαηνη Πίλαθεο

x-1 x (x-1) x 5x 2. Να απινπνηεζνύλ ηα θιάζκαηα, έηζη ώζηε λα κελ ππάξρνπλ ξηδηθά ζηνπο 22, 55, 15, 42, 93, 10 5, 12

Δηζαγωγή ζηε γιώζζα C Παξνπζίαζε 3 ε : Δίζνδνο/ Έμνδνο - Σπλαξηήζεηο - Pointers

ΑΛΛΑΓΗ ΟΝΟΜΑΣΟ ΚΑΙ ΟΜΑΔΑ ΕΡΓΑΙΑ, ΚΟΙΝΟΥΡΗΣΟΙ ΦΑΚΕΛΟΙ ΚΑΙ ΕΚΣΤΠΩΣΕ ΣΑ WINDOWS XP

(Ενδεικηικές Απανηήζεις) ΘΔΜΑ Α. Α1. Βιέπε απόδεημε Σει. 262, ζρνιηθνύ βηβιίνπ. Α2. Βιέπε νξηζκό Σει. 141, ζρνιηθνύ βηβιίνπ

ΚΔΦ. 2.4 ΡΗΕΔ ΠΡΑΓΜΑΣΗΚΩΝ ΑΡΗΘΜΩΝ

Άμεσοι Αλγόριθμοι: Προσπέλαση Λίστας (list access)

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Σύνθεζη ηαλανηώζεων. Έζησ έλα ζώκα πνπ εθηειεί ηαπηόρξνλα δύν αξκνληθέο ηαιαληώζεηο ηεο ίδηαο ζπρλόηεηαο πνπ πεξηγξάθνληαη από ηηο παξαθάησ εμηζώζεηο:

Αζκήζεις ζτ.βιβλίοσ ζελίδας 13 14

ΘΔΜΑ 1 ο Μονάδες 5,10,10

Επωηήζειρ Σωζηού Λάθοςρ ηων πανελλαδικών εξεηάζεων Σςναπηήζειρ

ΑΝΤΗΛΙΑΚΑ. Η Μηκή ζθέθηεθε έλαλ ηξόπν, γηα λα ζπγθξίλεη κεξηθά δηαθνξεηηθά αληειηαθά πξντόληα. Απηή θαη ν Νηίλνο ζπλέιεμαλ ηα αθόινπζα πιηθά:

ΑΡΥΔ ΟΙΚΟΝΟΜΙΚΗ ΘΔΩΡΙΑ ΛΤΔΙ ΓΙΑΓΩΝΙΜΑΣΟ ΚΔΦΑΛΑΙΟΤ 2

Έλαο πίνακας σσμβόλων ππνζηεξίδεη δύν βαζηθέο ιεηηνπξγίεο:

ΑΠΟΛΤΣΗΡΙΔ ΔΞΔΣΑΔΙ Γ ΣΑΞΗ ΔΠΔΡΙΝΟΤ ΓΔΝΙΚΟΤ ΛΤΚΔΙΟΤ ΑΒΒΑΣΟ 23 MAΪΟΤ ΑΔΠΠ

α) ηε κεηαηόπηζε x όηαλ ην ζώκα έρεη κέγηζην ξπζκό κεηαβνιήο ζέζεο δ) ην κέγηζην ξπζκό κεηαβνιήο ηεο ηαρύηεηαο

Κεθάλαιο 7. Πξνζθνξά ηνπ θιάδνπ Μ. ΨΥΛΛΑΚΗ

DOM. Γηδάζθνληεο: Π. Αγγειάηνο, Γ. Εήλδξνο Δπηκέιεηα δηαθαλεηώλ: Π. Αγγειάηνο. Σρνιή Ζιεθηξνιόγωλ Μεραληθώλ θαη Μεραληθώλ Υπνινγηζηώλ

Case Study. Παξαθάηω παξνπζηάδνπκε βήκα - βήκα κε screenshots έλα παξάδεηγκα ππνβνιήο κηαο εξγαζίαο θαη ηελ παξαγωγή ηνπ Originality Report.

Δομή ππογπάμμαηορ ζηη C++

ΑΠΛΟΠΟΙΗΗ ΛΟΓΙΚΩΝ ΤΝΑΡΣΗΕΩΝ ΜΕ ΠΙΝΑΚΕ KARNAUGH

Η/Υ A ΤΑΞΕΩΣ ΑΕ Συστήματα Αρίθμησης. Υποπλοίαρχος Ν. Πετράκος ΠΝ

242 - Ειζαγωγή ζηοσς Η/Υ

Φςζική Πποζαναηολιζμού Γ Λςκείος. Αζκήζειρ Ταλανηώζειρ 1 ο Φςλλάδιο

f '(x)g(x)h(x) g'(x)f (x)h(x) h'(x) f (x)g(x)

ΣΥΣΤΗΜΑΤΑ ΑΛΓΕΒΡΑ Α ΛΥΚΕΙΟΥ. 1. Να ιπζνύλ ηα ζπζηήκαηα. 1 0,3x 0,1y x 3 3x 4y 2 4x 2y ( x 1) 6( y 1) (i) (ii)

ΠΛΗ36. Άσκηση 1. Άσκηση 2. Οη δηεπζύλζεηο ησλ 4 σλ ππνδηθηύσλ είλαη νη αθόινπζεο. Υπνδίθηπν Α: /27 Υπνδίθηπν Β:

Γ ΣΑΞΖ ΔΝΗΑΗΟΤ ΛΤΚΔΗΟΤ ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΜΑΘΖΜΑΣΗΚΑ ΘΔΣΗΚΩΝ ΚΑΗ ΟΗΚΟΝΟΜΗΚΩΝ ΠΟΤΓΩΝ ΤΝΑΡΣΖΔΗ ΟΡΗΑ ΤΝΔΥΔΗΑ (έως Θ.Bolzano) ΘΔΜΑ Α

Δξγαιεία Καηαζθεπέο 1 Σάμε Δ Δ.Κ.Φ.Δ. ΥΑΝΗΩΝ ΠΡΩΣΟΒΑΘΜΗΑ ΔΚΠΑΗΓΔΤΖ. ΔΝΟΣΖΣΑ 2 ε : ΤΛΗΚΑ ΩΜΑΣΑ ΔΡΓΑΛΔΗΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Ογθνκεηξηθό δνρείν

ΑΠΑΝΤΗΣΔΙΣ ΓΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ II ΔΠΑΛ

ΚΕΦ. 2.3 ΑΠΟΛΤΣΗ ΣΘΜΗ ΠΡΑΓΜΑΣΘΚΟΤ ΑΡΘΘΜΟΤ

Πολυεπίπεδα/Διασυμδεδεμέμα Δίκτυα

Intel Accelerate Your Code

ΜΕΛΕΣΗ E.O.K. ΜΕ ΑΙΘΗΣΗΡΑ ΘΕΗ

ΕΝΤΟΛΕΣ WINDOWS ΚΑΙ UNIX

Μηα ζπλάξηεζε κε πεδίν νξηζκνύ ην Α, ζα ιέκε όηη παξνπζηάδεη ηοπικό μέγιζηο ζην, αλ ππάξρεη δ>0, ηέηνην ώζηε:

ΣΕΙ Δυτικήσ Μακεδονίασ, Παράρτημα Καςτοριάσ Τμήμα Πληροφορικήσ και Τεχνολογίασ Υπολογιςτών

Image J Plugin particle tracker για παρακολούθηση της κίνησης σωματιδίων

Δπηιέγνληαο ην «Πξνεπηινγή» θάζε θνξά πνπ ζα ζπλδέεζηε ζηελ εθαξκνγή ζα βξίζθεζηε ζηε λέα ρξήζε.

x x x x tan(2 x) x 2 2x x 1

1. Οδηγίερ εγκαηάζηαζηρ και σπήζηρ έξςπνυν καπηών και τηθιακών πιζηοποιηηικών με σπήζη ηος λογιζμικού Μοzilla Thunderbird

ΚΤΠΡΙΑΚΗ ΜΑΘΗΜΑΣΙΚΗ ΕΣΑΙΡΕΙΑ ΜΑΘΗΜΑΣΙΚΗ ΚΤΣΑΛΟΓΡΟΜΙΑ 2007 ΓΙΑ ΣΟ ΓΤΜΝΑΙΟ Παπασκευή 26 Ιανουαπίου 2007 Σάξη: Α Γυμνασίου ΥΟΛΕΙΟ..

Σρήκα Α. Γξάθνπκε ηα ζηνηρεία ηνπ Πξνκεζεπηή θαη παηάκε Δηζαγσγή. Σρήκα Β1

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

ΜΑΘΗΜΑΣΑ ΦΩΣΟΓΡΑΦΙΑ. Ειζαγωγή ζηη Φωηογραθία. Χριζηάκης Σαζεΐδης EFIAP

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

Δξγαιεία Καηαζθεπέο 1 Σάμε Σ Δ.Κ.Φ.Δ. ΥΑΝΙΧΝ ΠΡΧΣΟΒΑΘΜΙΑ ΔΚΠΑΙΓΔΤΗ. ΔΝΟΣΗΣΑ 11 ε : ΦΧ ΔΡΓΑΛΔΙΑ ΚΑΣΑΚΔΤΔ. Καηαζθεπή 1: Φαθόο κε ζσιήλα.

γηα ηνλ Άξε Κσλζηαληηλίδε

Μονοψϊνιο. Αγνξά κε ιίγνπο αγνξαζηέο. Δύναμη μονοψωνίος Η ηθαλόηεηα πνπ έρεη ν αγνξαζηήο λα επεξεάζεη ηελ ηηκή ηνπ αγαζνύ.

Hellas online Προεπιλεγμένες ρσθμίσεις για FritzBox Fon WLAN 7140 (Annex B) FritzBox Fon WLAN Annex B ( )

Ηλεκηπονικά Απσεία και Διεπαθέρ

ΠΑΝΔΛΛΑΓΗΚΔ ΔΞΔΣΑΔΗ Γ ΣΑΞΖ ΖΜΔΡΖΗΟΤ ΓΔΝΗΚΟΤ ΛΤΚΔΗΟΤ ΚΑΗ ΔΠΑΛ ΣΔΣΑΡΣΖ 25 ΜΑΨΟΤ 2016 ΔΞΔΣΑΕΟΜΔΝΟ ΜΑΘΖΜΑ: ΑΡΥΔ ΟΗΚΟΝΟΜΗΚΖ ΘΔΧΡΗΑ ΠΡΟΑΝΑΣΟΛΗΜΟΤ - ΔΠΗΛΟΓΖ

ΔΙΑΓΩΝΙΣΜΑ ΣΤΗ ΦΥΣΙΚΗ. Ύλη: Εσθύγραμμη Κίνηζη

Δξγαζηεξηαθή άζθεζε 03. Σηεξενγξαθηθή πξνβνιή ζην δίθηπν Wulf

ΜΑΘΗΜΑ / ΤΑΞΗ : ΗΛΕΚΤΡΟΛΟΓΙΑ/Γ ΛΥΚΕΙΟΥ ΣΕΙΡΑ: ΗΜΕΡΟΜΗΝΙΑ: 08/09/2014

Αιγόξηζκνη Δνκή επηινγήο. Απιή Επηινγή ύλζεηε Επηινγή. Εηζαγσγή ζηηο Αξρέο ηεο Επηζηήκεο ησλ Η/Τ. introcsprinciples.wordpress.

ΔΝΓΔΙΚΣΙΚΔ ΛΤΔΙ ΣΑ ΜΑΘΗΜΑΣΙΚΑ ΠΡΟΑΝΑΣΟΛΙΜΟΤ 2017

6 η Εργαζηηριακή Άζκηζη Επαλήθεσζη Λειηοσργίας Βαζικών Φλιπ-Φλοπ

ΣΡΑΠΕΖΑ ΘΕΜΑΣΩΝ Α ΛΤΚΕΙΟΤ

Αζθήζεηο 5 νπ θεθαιαίνπ Crash course Step by step training. Dipl.Biol.cand.med. Stylianos Kalaitzis

Άζκηζη ζτέζης κόζηοσς-τρόνοσ (Cost Time trade off) Καηαζκεσαζηική ΑΔ

ηδάζθσλ: εµήηξεο Εετλαιηπνύξ

Κβαντικοί Υπολογισμοί. Πέκπηε Γηάιεμε

ΒΗΜΑ 2. Εηζάγεηε ηνλ Κωδηθό Πξόζβαζεο πνπ ιακβάλεηε κε SMS & δειώλεηε επηζπκεηό Όλνκα Πξόζβαζεο (Username) θαη ην ζαο

5 η Δργαζηηριακή Άζκηζη Κσκλώμαηα Γσαδικού Αθροιζηή/Αθαιρέηη

Transcript:

Δπαλάιεςε Αιθαξηζκεηηθέο εηξέο Υαξαθηήξσλ (Strings) (Γηάιεμε 2) Γηδάζθσλ: Γεκήηξεο Εετλαιηπνύξ 2-1

1) Strings ζηε C Έλα string είλαη κία αθνινπζία αιθαξηζκεηηθώλ ραξαθηήξσλ, ζεκείσλ ζηίμεο θηι. Π.ρ. Hello How are you? 121212 *Apple#123*% Σεκεξηλή Γηάιεμε: Φξήζε ηεο πην απιήο δνκήο δεδνκέλσλ: πίλαθαο 1. Δηζαγσγηθέο Έλλνηεο ζε Strings(Αξρηθνπνίεζε, Αλάγλσζε & Δθηύπσζε) 2. Πίλαθεο από Strings 3. Σπλαξηήζεηο Βηβιηνζήθεο <string.h> 4. Υινπνίεζε Σπλαξηήζεσλ Βηβιηνζήθεο 2-2

1) Strings ζηε C Έρνπκε ήδε ρξεζηκνπνηήζεη ζε δηάθνξεο πεξηπηώζεηο ηα strings π.ρ. printf( Hello ); Μέρξη ηώξα όκσο, δελ αλαθεξόκαζηαλ ζηα strings κε ηελ ρξήζε κεηαβιεηώλ. Σηελ C δελ ππάξρεη ν ηύπνο String (όπσο ην float, int θαη char), αιιά απηόο πινπνηείηαη σο πίλαθεο ραξαθηήξσλ H E L L O \0 Δπαλαιακβάλνπκε ηα strings γηαηί ζα καο δώζεη ηελ δπλαηόηεηα λα δνπιέςνπκε κε ηελ απινύζηεξε δνκή δεδνκέλσλ: ηνλ πίλαθα, αιιά θαη γηα ιόγνπο επαλάιεςεο 2-3

1.1) Αξρηθνπνίεζε string Οξηζκόο String Έλαο πίλαθαο από ραξαθηήξεο πνπ ηειεηώλεη κε ηνλ ραξαθηήξα NULL \0, π.ρ. Hello\0, Hi there\0, \0 (Πξνζνρή ην \0 δελ θαίλεηαη ζηελ νζόλε) Υπάξρνπλ δηάθνξνη ηξόπνη λα νξίζνπκε έλα String ζηελ C, αλάινγα κε ην αλ γλσξίδνπκε ην string πξνηνύ ηελ κεηαγιώηηηζε ή όρη. Α) Αξρηθνπνίεζε (γλσξίδνληαο εθ ησλ πξόηεξσλ ην String) char msg[ ]= Hello ; Γεκηνπξγεί απηόκαηα ην: H E L L O \0 2-4

1.1) Αξρηθνπνίεζε string σζηό char msg[6]; msg[0] = 'H'; msg[1] = 'e'; msg[2] = 'l'; msg[3] = 'l'; msg[4] = 'o'; msg[5] = '\0'; Λάζνο char msg[ ]={ H, e, l, l, o ; πλίζηαηαη απηόο ν νξηζκόο char msg[ ]= Hello αιιά ππάξρνπλ θαη άιινη ηξόπνη σζηό char msg[ ]={ H, e, l, l, o, \0 ; σζηό char msg[6]={ H, e, l, l, o, \0 ; σζηό αιιά ζπάηαιν char msg[40]= Hello Γελ δεζκεύνπκε αξθεηό ρώξν θαη δεκηνπξγείηαη buffer overflow Λάζνο char msg[5]={'h','e','l','l','o','\0'; Πίλαθαο ραξαθηήξσλ πνπ δελ ηειεηώλεη ζε \0. Δπνκέλσο δελ είλαη String Αλ θάπνηνο εθηειέζεη printf( %s, msg); Σόηε ζηελ νζόλε ζα δείμεη Hello??? 2-5

1.1) Αξρηθνπνίεζε string Αο δνύκε πσο κνηάδνπλ εηθνληθά νη αθόινπζνη νξηζκνί char msg[10]= Hello ; H E L L O \0 SIZE=10 Σν? είλαη απξνζδηόξηζηνο ραξαθηήξαο char msg[ ]= Hello ; H E L L O \0 SIZE=6 2-6

1.1) Ζ δηάθνξα char θαη string Αο δνύκε πσο κνηάδνπλ εηθνληθά νη αθόινπζνη νξηζκνί char c = H ; Ο ραξαθηήξαο H βξίζθεηαη θάπνπ ζηελ κλήκε??? H?? char c[ ]= H ; char H c[ ]= H ; \0 Σν String H βξίζθεηαη θάπνπ ζηελ κλήκε char c= H ; ΛΑΘΟ ζηελ κεηαγιώηηηζε 2-7

1.1) Αξρηθνπνίεζε string Δξώηεζε Τη γίλεηαη αλ δελ μέξνπκε ην String εθ ησλ πξόηεξσλ; Πόζν ρώξν πξέπεη λα δεζκεύζνπκε; Απάληεζε Αξθεηό γηα λα ρσξέζεη δηάθνξα δεδνκέλα εηζόδνπ πνπ πξόθεηηαη λα εηζάγνπκε. π.ρ. αλ πξόθεηηαη λα απνζεθεύζνπκε θάπνην όλνκα ηόηε 20 ραξαθηήξεο θαίλεηαη λα αξθνύλ. Σηελ πξαγκαηηθόηεηα ρξεζηκνπνηνύκε δπλακηθή δέζκεπζε κλήκεο, ε νπνία καο επηηξέπεη λα δεζκεύζνπκε ηνλ απαηηνύκελν ρώξν θαηά ηελ δηάξθεηα εθηέιεζεο ηνπ πξνγξάκκαηνο (ζα κηιήζνπκε γηα απηό ην ζέκα ζηελ ζπλέρεηα ηνπ καζήκαηνο)! Πξνηνύ δνύκε έλα παξάδεηγκα, αο δνύκε πσο δηαβάδνπκε strings από ηνλ ρξήζηε θαη πσο ηα εθηππώλνπκε. 2-8

1.2) Αλάγλσζε/Δθηύπσζε String scanf ( %s, name) ΠΡΟΟΥΗ: Γελ ρξεζηκνπνηείηε ην &, γηαηί ην name είλαη πίλαθαο. Θπκεζείηε όηη ζε άιινπο ηύπνπο δεδνκέλσλ ρξεζηκνπνηείηαη ην & π.ρ. scanf( %d, &a); Γηα εηζαγσγή ζπκβνινζεηξάο κε θελά ρξεζηκνπνηείηαη ε fgets(name, sizeof(name), stdin); ή #define MAX "50 scanf("%" MAX "[^\n]", name); printf ( %s,name) Γηα εθηύπσζε ζπκβνινζεηξώλ 2-9

1.2) Αλάγλσζε/Δθηύπσζε string #include <stdio.h> int main() { char name[20]; scanf("%s", name); printf("%s", name); return 0; M A R I A \0 Σν printf γλσξίδεη όηη ε εθηύπσζε πξέπεη λα γίλεη κέρξη ην \0 6.. 19 2-10

1.2) Αλάγλσζε/Δθηύπσζε string Πξόγξακκα πνπ πξνζζέηεη έλα «Α» ζηελ ζέζε 5 θαη ηεξκαηίδεη ην string #include <stdio.h> int main() { char name[20]; scanf("%s", name); name[5]= Α ; name[6]= \0 ; printf("%s", name); return 0; Πξίλ M A R I A \0 Μεηά M A R I A A 6.. 19 6.. 19 \0??? 2-11

Κνηλό Λάζνο (Αλάζεζε ζε String) Υπνζέζηε όηη έρνπκε ηελ πην θάησ δήισζε char name [50]; Γελ επηηξέπεηε λα αλαζέζνπκε έλα string από έλα άιιν (όπσο ζηνπο ππόινηπνπο ηύπνπο) Π.ρ. name= hydrogen ΛΑΘΟ (compile error) error: incompatible types in assignment name={ h, y, d, r, o, \0 ΛΑΘΟ (compile error) name[0]= h ; name[1]= y ;. ΟΡΘΟ Όκσο, ππάξρεη επθνιόηεξνο ηξόπνο ηνλ νπνίν ζα δνύκε ζε ιίγν (κε ρξήζε strcpy) 2-12

2) Πίλαθεο από Strings Δίπακε όηη ην String είλαη έλαο κνλνδηάζηαηνο πίλαθαο από ραξαθηήξεο πνπ ηειεηώλεη ζε \0. Μπνξνύκε λα έρνπκε πίλαθεο από Strings; ΝΑΙ Παξαδείγκαηα π.ρ. Λίζηα κε νλόκαηα, εκέξεο, θηι char names[num_students][name_len]; char weekdays[7][10]={ Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday ; 6 0 M o n d a y \0 \0? \0?? 1 T u e s d a y \0?? 6 S u n d a y \0??? 2-13

3) Σπρλέο ιεηηνπξγίεο κε string Υπάξρνπλ θάπνηεο ιεηηνπξγίεο πνπ είλαη πνιύ ζπρλέο πάλσ ζε Strings. Παξαδείγκαηα Compare: Σύγθξηζε δπν strings Copy: Αληηγξαθή από έλα string ζε άιιν νιόθιεξν ή κέξνο ηνπ. Concat: ζύλδεζε δπν strings Substring: εύξεζε ζπκβνινζεηξάο ζε κηα κεγαιύηεξε αθνινπζία Η Βηβιηνζήθε <String.h> πεξηέρεη ζπλαξηήζεηο γηα όια ηα πην πάλσ. Γηα εμάζθεζε ζα πινπνηήζνπκε θάπνηεο από ηηο ζπλαξηήζεηο κόλνη καο 2-14

3) Ζ ζπλάξηεζε strcmp() Οη ζπγθξίζεηο γίλνληαη βάζε ηνπ πίλαθα ASCII 2-15

3) Ζ Βηβιηνζήθε string.h Τν αξρείν επηθεθαιίδα (header file), string.h παξέρεη ζπλαξηήζεηο γηα ρεηξηζκό strings Πεξηέρεη Γηάθνξεο Σπλαξηήζεηο, π.ρ., strlen(s), ππνινγίδεη ην κέγεζνο ηνπ string strcpy(s1,s2), αληηγξάθεη ην s2 ζην s1 strcat(s1,s2), πξνζζέηεη ην s2 ζην s1. strcmp(s1,s2), ζπγθξίλεη ην s1 κε s2 θαη επηζηξέθεη ζεηηθή ηηκή εάλ s1 κεγαιύηεξν (αιθαβεηηθά) από ην s2, κεδέλ αλ είλαη ίζα, θαη αξλεηηθή ηηκή εάλ s1 κηθξόηεξν από s2. (Η ζύγθξηζε γίλεηαη βάζε ηνπ πίλαθα ASCII) 2-16

3) Ζ ζπλάξηεζε strlen() H ζπλάξηεζε strlen κεηξά ην κέγεζνο ελόο String. π.ρ. char msg[10]= HELLO H E L L O \0 printf( %d, strlen(msg)); Δθηππώλεη: 5. Γειαδή ηνλ αξηζκό ησλ ραξαθηήξσλ έσο ην \0 Πξνζνρή!!! Tν strlen δελ καο ιέεη ην κέγηζην κέγεζνο ηνπ string. Απηό είλαη 10 ραξαθηήξεο θαη ην μέξνπκε πξηλ ην compile ή κε «printf("%ld", sizeof(msg));» 2-17

#include <stdio.h> #include <string.h> 3) Ζ ζπλάξηεζε strlen() int main() { char x[10] = "123456" ; printf("%d", strlen(x)); return 0; Σππώλεη 6 2-18

3) Ζ ζπλάξηεζε strlen() Ξέξνπκε όηη ε strlen είλαη έηνηκε ζπλάξηεζε. Γηα εμάζθεζε, ζα ηελ πινπνηήζνπκε κόλνη καο ΑΚΗΗ Γξάςεηε ηελ ζπλάξηεζε int mystrlen(char c[]) πνπ κέηξα ην κέγεζνο ελόο string. Ζ ζπλάξηεζε επηζηξέθεη ην κήθνο ηνπ string Tη ζα επηζηξέςεη? mystrlen( abc ) => 3 char x[10] = 123456 ; mystrlen(x); => 6 mystrlen( abc abc ) => 7 2-19

3) Ζ ζπλάξηεζε strlen() Αιγόξηζκνο Γηάβαζε ην string από ηελ αξρή κέρξη λα βξεηο ην \0. Σε θάζε βήκα αύμεζε θάπνην κεηξεηή θαηά 1. name M A R I A A 6.. 19 \0??? Δξώηεζε Γηαηί δελ κπνξνύκε λα πάκε θαηεπζείαλ ζην ηέινο ηνπ String (γηα λα βξνύκε θαηεπζείαλ ην κέγεζνο); 2-20

#include <stdio.h> int mystrlen (char s[]) { int i=0; while (s[i]!= '\0') i++; return i; int main() { char x[10] = "123456" ; printf("%d", mystrlen(x)); 3) Ζ ζπλάξηεζε strlen() 2-21

1) Ζ ζπλάξηεζε strcpy() H ζπλάξηεζε strcpy(ma, mb) αληηγξάθεη ην mb ζην ma Πξίλ π.ρ. ma?? mb H E L L O \0 int main() Μεηά { char ma[10]; ma char mb[10]="hello"; mb strcpy(ma,mb); printf("ma=%s and mb=%s", ma, mb); H E L L O \0 H E L L O \0 2-22

1) Υινπνίεζε ηεο strcpy() Υινπνηήζηε ηελ ζπλάξηεζε mystrcpy(char to[], char from[]) ε νπνία αληηγξάθεη ηo String b ζην String a Αιγόξηζκνο Γηα θάζε ζηνηρείν from[i] αληίγξαςε ην from[i] ζηελ ζέζε to[i], κέρξη λα θηάζεηο ζην \0. 2-23

1) Υινπνίεζε ηεο strcpy() #include <stdio.h> /* To string from αληηγξάθεηαη ζην to */ void mystrcpy(char to[ ], char from[ ]) { int i=0; while (from[i]!= '\0') { to[i] = from[i]; i++; to[i]='\0'; int main() { char ma[10]; char mb[10]="hello"; mystrcpy(ma,mb); printf("ma=%s and mb=%s", ma, mb); Πξίλ to?? from Μεηά H E L L O \0 H E L L O \0 to from H E L L O \0 2-24

2) Ζ ζπλάξηεζε strcat() H ζπλάξηεζε strcat(s1, s2) αληηγξάθεη ην s2 ζην ηέινο ηνπ s1 Πξίλ π.ρ. s1 H E L L O \0 s2 C A T \0?? int main() Μεηά { char ma[10]="hello"; s1 char mb[10]="cat"; s2 strcat(ma,mb); printf("ma=%s and mb=%s", ma, mb); H E L L O C C A T \0?? A T \0? 2-25

2) Υινπνίεζε strcat() Υινπνηήζηε ηελ ζπλάξηεζε void mystrcat(char s1[], char s2[]) ε νπνία πξνζζέηεη ηo string s2 ζην ηέινο ηνπ s1 Αιγόξηζκνο Βξεο ην \0 ζην s1 ζηελ ζέζε K. Αληίγξαςε θάζε s2[i], ζηελ αληίζηνηρε ζέζε s1[i+k]. Πξόζζεζε \0 ζην ηέινο ηνπ s1. 2-26

2) Υινπνίεζε strcat() έθδνζε 1 void mystrcat(char s1[], char s2[]) { int i=0, k=0; // Δύξεζε \0 ζην S1 while (s1[k]!= '\0') { k++; // Αληηγξαθή ηνηρείσλ while (s2[i]!= '\0') { s1[k+i]=s2[i]; i++; s1[k+i]= \0 ; Πξίλ s1 H E L L O \0 s2 Μεηά s1 s2 C A T \0?? H E L L O C C A T \0?? // Πξνζζήθε NULL ζην ηέινο ηνπ s1 θ A T \0? 2-27

2) Υινπνίεζε strcat() - έθδνζε 2 void mystrcat(char s1[], char s2[]) { int i=0, k=0; // Δύξεζε \0 ζην S1 k = strlen(s1); s2 Υξήζε strlen Πξίλ s1 H E L L O \0 Μεηά C A T \0?? // Αληηγξαθή ηνηρείσλ s1 H E L L O C while (s2[i]!= '\0') { s1[k+i]=s2[i]; i++; s2 C A T \0?? s1[k+i]= \0 ;// πξνζζήθε NULL ζην ηέινο ηνπ s1 θ A T \0? 2-28