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

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

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

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

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

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

ΑΣΚΗΣΗ 2: ΔΟΜΗ ΠΡΟΓΡΑΜΜΑΤΟΣ C, ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΚΑΙ ΣΥΝΑΡΤΗΣΕΙΣ ΕΙΣΟΔΟΥ ΚΑΙ ΕΞΟΔΟΥ

Εισαγωγή στην C. Μορφή Προγράµµατος σε γλώσσα C

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

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

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

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

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

Sheet2 Α.Μ FAIL. οριακό PASS. - Έπρεπε να χρησιµοποιήσετε συναρτήσεις από τη string.h

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

if(συνθήκη) {... // οµάδα εντολών } C: Από τη Θεωρία στην Εφαρµογή 5 ο Κεφάλαιο

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

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

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

επιµέλεια Θοδωρής Πιερράτος

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

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

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

C: Από τη Θεωρία στην Εφαρµογή 2 ο Κεφάλαιο

Επιλογή και επανάληψη. Λογική έκφραση ή συνθήκη

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

Sheet1_2. - Δεν απελευθερώνεις τη δυναµικά δεσµευµένη µνήµη. - Η έξοδος του προγράµµατός σου δεν είναι ακριβώς όπως ζητούσε η άσκηση.

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

ΚΕΦΑΛΑΙΟ 7 ο. Έτσι ο προγραµµατισµός µε τη ΓΛΩΣΣΑ εστιάζεται στην ανάπτυξη του αλγορίθµου και τη µετατροπή του σε σωστό πρόγραµµα.

ΕΡΓΑΣΤΗΡΙΟ 9: Συμβολοσειρές και Ορίσματα Γραμμής Εντολής

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

Χpήσιµες Βιβλιοθήκες της γλώσσας C

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

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

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

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

scanf() scanf() stdin scanf() printf() int float double %lf float

Εισαγωγή στον Προγραµµατισµό «C»

int array[10]; double arr[5]; char pin[20]; Προγραµµατισµός Ι

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

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

ΕΡΓΑΣΤΗΡΙΟ 11 - Απαντήσεις

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 8/1/12, 22:00

lab5 -Ο κώδικάς σου είναι σωστός αλλά από εδώ και στο εξής προσπάθησε να βάζεις σχόλια στην µορφή που ζητάει το φυλλάδιο

LAB1 ΛΥΣΗ. Ευρετήριο απαντήσεων ανά τµήµα: Ευρετήριο απαντήσεων ανά µήνυµα λάθους/προειδοποίησης

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

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

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal 1 ο Μέρος σηµειώσεων (Ενότητες 8.1 & 8.2 σχολικού βιβλίου)

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

Επεξεργασία Αρχείων Κειµένου

Προγραμματισμός H/Y Ενότητα 3: Πίνακες αριθμών και χαρακτήρων. Επικ. Καθηγητής Συνδουκάς Δημήτριος Τμήμα Διοίκησης Επιχειρήσεων (Γρεβενά)

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

lab13grades 449 PASS 451 PASS PASS FAIL 1900 FAIL Page 1

Στόχοι και αντικείμενο ενότητας. Τύπος πίνακα. Τύπος πίνακα (συν.) #6. Πίνακες και Δείκτες

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 13/1/13, 22:00

Βασικά στοιχεία της Java

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

ΑΣΚΗΣΗ 2: ΧΕΙΡΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ ΣΤΗ C

Κεφάλαιο 10 ο Υποπρογράµµατα

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

Η δήλωση πού δηµιουργεί αποθήκευση τών δεδοµένων ονοµαζεται ορισµός τής µεταβλητής.

ΕΡΓΑΣΤΗΡΙΟ 2 ΕΙΣΑΓΩΓΗ ΣΤΗ C. Εργαστήριο 2. Τµήµα Πληροφορικής και Τηλεπικοινωνιών

printf Οι κωδικοί (format codes) του printf για διάφορους τύπους δεδοµένων είναι:

for for for for( . */

a = 10; a = k; int a,b,c; a = b = c = 10;

Να γράψετε τα αποτελέσματα αυτού του αλγόριθμου για Χ=13, Χ=9 και Χ=22. Και στις 3 περιπτώσεις το αποτέλεσμα του αλγορίθμου είναι 1

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

6. ΠΙΝΑΚΕΣ & ΑΛΦΑΡΙΘΜΗΤΙΚΑ

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

Πανεπιστήµιο Θεσσαλίας, THMMY HY120, Σεπτέµβριος 2015 ΟΝΟΜΑΤΕΠΩΝΥΜΟ:

ΔΟΜΗΜΕΝΟΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Κεφάλαιο 8 : H γλώσσα προγραµµατισµού Pascal

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

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

Κεφάλαιο , 3.2: Συναρτήσεις II. ( ιάλεξη 12) ιδάσκων: ηµήτρης Ζεϊναλιπούρ

Προγραµµατισµός Ι Εργαστήριο 9ο Ακαδ. Έτος ΕΡΓΑΣΤΗΡΙΟ 9 ΕΡΓΑΣΤΗΡΙΟ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ I, ΑΚΑΔΗΜΑΪΚΟ ΕΤΟΣ

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

ΑΣΚΗΣΗ 5: ΠΙΝΑΚΕΣ. Σχήµα 1: H έννοια των πινάκων

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

2.1. Εντολές Σχόλια Τύποι Δεδομένων

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

lab10grades - Το αποτέλεσµα της τοµής θα έπρεπε να εµφανίζετε µέσα σε εισαγωγικά "Helo".

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

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

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

Προγραμματισμός ΗΥ και Υπολογιστική Φυσική. Χρήστος Γκουμόπουλος

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

ΟΜΟΣΠΟΝ ΙΑ ΕΚΠΑΙ ΕΥΤΙΚΩΝ ΦΡΟΝΤΙΣΤΩΝ ΕΛΛΑ ΟΣ (Ο.Ε.Φ.Ε.) ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ ΕΠΑΝΑΛΗΠΤΙΚΑ ΘΕΜΑΤΑ 2017 A ΦΑΣΗ

Σκοπός. Εργαστήριο 6 Εντολές Επανάληψης Τα Εργαστηριακά Προγράμματα. Η δομή Επιλογής στη PASCAL. H δομή Επανάληψης στη PASCAL. Η εντολή επανάληψης for

Βαθμός Σχόλια. lab5 PASS PASS PASS PASS PASS. Οριακά PASS - Καλή δουλειά

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

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

- Το πρόγραµµα σας δίνει τα αναµενόµενα αποτελέσµατα.

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

ΣΕΤ ΑΣΚΗΣΕΩΝ 4. Προθεσµία: 22/12/2016, 21:00

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

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

Οι εντολές ελέγχου της ροής ενός προγράμματος.

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

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

Sheet2. Σωστή, και µπράβο που µεριµνήσατε για λίστες διαφορετικών µεγεθών.

Α1. (α). ώστε τον ορισµό του προβλήµατος (Μονάδες 3)

Transcript:

Συµβολοσειρές (Strings) Συµβολοσειρά (string) είναι µια σειρά αλφαριθµητικών χαρακτήρων (γενικά εκτυπώσιµων συµβόλων ASCII). Όταν λέµε σειρά εννοούµε διαδοχικές θέσεις µνήµης που µπορούν να αντιµετωπισθούν σαν ένα σύνολο διατεταγµένων στοιχειωδών δεδοµένων. Η αναγκαιότητα των συµβολοσειρών πρέπει να έχει γίνει ήδη κατανοητή αφού πρόκειται για τα µηνύµατα που συνοδεύουν τις εκτυπώσεις µε τη συνάρτηση printf. Στη C η συµβολοσειρά ορίζεται σαν µια σειρά δεδοµένων του τύπου char τα οποία τερµατίζονται µε ένα µηδενικό χαρακτήρα (NULL). Όταν η C χειρίζεται τη συµβολοσειρά µε κάποιο τρόπο, π.χ. να τη συγκρίνει µε κάποια άλλη συµβολοσειρά, να την εκτυπώσει, να την αντιγράψει σε µια άλλη συµβολοσειρά, κ.λ.π., οι συναρτήσεις που καλούνται είναι σχεδιασµένες να εκτελούν τη λειτουργία τους µέχρι να συναντήσουν τον µηδενικό χαρακτήρα. Πίνακας είναι µια σειρά από δεδοµένα του αυτού τύπου, ο οποίος όµως τύπος δεν είναι απαραίτητα στοιχειώδης (π.χ. ακέραιος, πραγµατικός, κ.λ.π). Η συµβολοσειρά είναι ένας ειδικός τύπος πίνακα µε δεδοµένα του τύπου char και µε τερµατισµό µέσω του µηδενικού χαρακτήρα. char name[5]; /* define a string of characters */ Το πρώτο που πρέπει να προσέξουµε είναι ότι ο τρόπος δήλωσης µιας συµβολοσειράς γίνεται ως πίνακας χαρακτήρων. Η δήλωση µοιάζει µε τη δήλωση µεταβλητής χαρακτήρα αλλά µετά το όνοµα της µεταβλητής, και χωρίς κενό, ακολουθεί ένα ζεύγος τετράγωνων παρενθέσεων που περιέχει έναν αριθµό ο οποίος καθορίζει το µέγεθος του πίνακα, δηλαδή τον αριθµό των στοιχειωδών δεδοµένων που περιέχει ο πίνακας. Στην πιο πάνω δήλωση η συµβολοσειρά µπορεί να έχει το πολύ 5 χαρακτήρες. Η δήλωση µεγέθους είναι απαραίτητη για να δεσµεύσει ο µεταφραστής 5 συνεχόµενες θέσεις µνήµης, όπου η κάθε µια έχει χωρητικότητα ενός χαρακτήρα. Οι θέσεις αυτές έχουν η κάθε µια το δικό της όνοµα που καθορίζεται ως συνδυασµός δύο τµηµάτων: το όνοµα του πίνακα, δηλαδή name, και ο αριθµός σειράς του στοιχείου. Στην C ο αριθµός σειράς ξεκινά από το 0 και φθάνει µέχρι το µέγεθος του πίνακα µείον µια θέση. Έτσι έχουµε τις µεταβλητές name[0], name[1], name[2], name[3], και name[4]. Για το µεταφραστή και το σύστηµα εκτέλεσης του προγράµµατος τα ονόµατα αυτά σηµαίνουν ακριβώς: Βασικός χειρισµός συµβολοσειρών

char name[5]; /* define a string of characters */ Σύµφωνα µε την πιο πάνω δήλωση, ο πίνακας χαρακτήρων name έχει 5 θέσεις. Για να τον χρησιµοποιήσουµε όµως ως συµβολοσειρά πρέπει ο τελευταίος χαρακτήρας να είναι ο µηδενικός, άρα µένουν τέσσερις ωφέλιµες θέσεις χαρακτήρων. Όταν λέµε µηδενικός χαρακτήρας εννοούµε το αριθµητικό µηδέν, όχι το χαρακτήρας µηδέν. Μερικές φορές θα το συνατήσετε και ως '\0'. Η εκτύπωση µιας σταθερής συµβολοσειράς γίνεται µε τη βοήθεια της συνάρτησης printf. Απλά η συµβολοσειρά - µήνυµα περικλείεται από διπλά εισαγωγικά, π.χ. printf("this is a constant string"); Στη περίπτωση του πίνακα name έχουµε µια µεταβλητή συµβολοσειρά και η εµφάνισή της γίνεται µε τον χαρακτήρα ελέγχου '%s'. printf("%s",name); Σηµειώστε ακόµη ότι µόνο το όνοµα του πίνακα δίνεται, χωρίς την ένδειξη των τετράγωνων παρενθέσεων. Αυτό σηµαίνει ότι στην εκτύπωση της συµβολοσειράς χρησιµοποιείται µόνο η διεύθυνση της βάσης, δηλαδή του ονόµατος name. Ο µηδενικός χαρακτήρας δεν εκτυπώνεται αλλά χρησιµοποιείται από την printf για τον έλεγχο τερµατισµού της συµβολοσειράς. Ο κάθε χαρακτήρας που είναι στοιχείο της συµβολοσειράς µπορεί να εκτυπωθεί αυτόνοµα µε τη χρήση του χαρακτήρα ελέγχου '%c' και του ονόµατος του συγκεκριµένου χαρακτήρα, π.χ. name[2]. printf("%c",name[2]); Μπορούµε επίσης να εκφράσουµε τη λειτουργία εκτύπωσης ολόκληρης της συµβολοσειράς µε τη βοήθεια µιας επανάληψης for ως for (index = 0; name[index]; index++) printf("%c",name[index]); Σηµειώστε ότι ο µηδενικός χαρακτήρας ισοδυναµεί µε το αριθµητικό 0, δηλαδή τη λογική τιµή του ψευδούς άρα καθιστά τη συνθήκη ελέγχου ψευδή και τερµατίζει την επανάληψη. Τέλος υπάρχει η δυνατότητα να εκτυπώσουµε µια συµβολοσειρά όχι από την αρχή αλλά από κάποιο σηµείο και µετά. Όπως είδαµε η εκτύπωσης της συµβολοσειράς απαιτεί µόνο µια διεύθυνση, την διεύθυνση εκκίνησης της εκτύπωσης. Όταν εκτυπώνουµε το σύνολο

της συµβολοσειράς, η διεύθυνση εκκίνησης συµπίπτει µε τη διέυθυνση της βάσης, δηλαδή το όνοµα name. 'Οταν όµως θέλουµε να ξεκινήσουµε από τον πρώτο, ας πόυµε, χαρακτήρα, πρέπει να ορίσουµε τη δική του διεύθυνση ως διεύθυνση εκκίνησης. Βλέπουµε ότι η διεύθυνση name ισοδυναµεί µε τη διεύθυνση &name[0] που διαβάζεται ως 'η διέυθυνση του µηδενικού στοιχείου του πίνακα name'. Η χρησιµότητα του συµβόλου της διεύθυνσης & θα γίνει πιο κατανοητή στα επόµενα κεφάλαια. Μερικές συναρτήσεις συµβολοσειρών Οι συµβολοσειρές είναι ιδιαίτερα χρήσιµες στην επεξεργασία κειµένου κάθε είδους. Μη ξεχνάτε ότι και τα προγράµµατά µας είναι κείµενα µιας ειδικής γλώσσας, άρα και η µετάφραση ενός προγράµµατος είναι µια εξειδικευµένη επεξεργασία κειµένου. Τελικά στη µνήµη του υπολογιστή όλες οι πληροφορίες (εντολές, αριθµοί, χαρακτήρες) δεν είναι παρά σύµβολα. Επίσης πολλά προγράµµατα συστηµάτων (όπως για παράδειγµα οι επικοινωνίες) στηρίζονται σε επεξεργασία συµβολοσειρών. Γι' αυτούς τους λόγους η C παρέχει µια βιβλιοθήκη συναρτήσεων για την επεξεργασία συµβολοσειρών. #include <string.h> Με την πιο πάνω εντολή το πρόγραµµα ειδοποιεί το µεταφραστή να ενσωµατώσει το αρχείο κεφαλής string.h Το αρχείο αυτό περιέχει τη βασική βιβλιοθήκη συναρτήσεων για τη διαχείριση συµβολοσειρών. Μια πολύ χρήσιµη συνάρτηση που επιτρέπει την αντιγραφή µιας συµβολοσειράς σε µια άλλη είναι η strcpy. Η αντιγραφή διακόπτεται όταν στη συµβολοσειρά - παραγωγό βρεθεί ο µηδενικός χαρακτήρας, δηλαδή for (i = 0; (consum[i] = produc[i]); i++); Προσέξτε τη συνθήκη ελέγχου που κάνει ουσιαστικά όλη τη δουλειά. Εκχωρεί έναν χαρακτήρα από τον παραγωγό στον καταναλωτή αλλά επειδή η εκχώρηση είναι και έκφραση έχει ως εξαγόµενο τη τιµή του χαρακτήρα produc[i]. Όταν βρεθεί ο µηδενικός χαρακτήρας η συνθήκη γίνεται ψευδής και η επανάληψη τερµατίζεται. Σηµειώστε το ερωτηµατικό µετά το κλείσιµο της παρένθεσης (σηµαίνει ότι το for έχει άδειο σώµα, δηλαδή δεν εκτελεί καµία πρόταση). strcpy(name1,"christos"); strcpy(name, name1);

Όπως φαίνεται στις πιο πάνω εντολές, η strcpy δουλεύει µε παραγωγό είτε σταθερά είτε µεταβλητή συµβολοσειρά. Για τις σταθερές συµβολοσειρές χρησιµοποιούµε το διπλό εισαγωγικό. Η strcpy µπορεί να παροµοιαστεί µε µια εκχώρηση µεταξύ συµβολοσειρών. Με την εκτέλεση των πιο πάνω εντολών οι συµβολοσειρές name1 και name2 θα πάρουν την τιµή 'Christos'. Μια άλλη συνάρτηση συµβολοσειρών είναι η strcmp, η οποία συγκρίνει δύο συµβολοσειρές ας πούµε s1 και s2. Επιστρέφει 1 αν η s1 είναι µεγαλύτερη, 0 αν είναι ίσες, -1 αν η s2 είναι µεγαλύτερη. Η σύγκριση γίνεται σύµφωνα µε τον κώδικα ASCII. ύο συµβολοσειρές είναι ίσες αν έχουν το ίδιο µήκος και ίδιους χαρακτήρες σε κάθε θέση. Μια συµβολοσειρά είναι µεγαλύτερη από µιαν άλλη εάν (α) έχει µεγαλύτερο µήκος ή (β) σε κάποια θέση υπάρχει χαρακτήρας που έχει µεγαλύτερο κωδικό ASCII από τον αντίστοιχο χαρακτήρα της άλλης συµβολοσειράς. Για παράδειγµα η συµβολοσειρά 'Zeke' είναι µεγαλύτερη από τη 'Rosalina' γιατί το Z έχει µεγαλύτερο κωδικό από το R. Παρόµοια η συµβολοσειρα 'Rosalina' είναι µεγαλύτερη από τη συµβολοσειρά 'Rosa' γιατί έχει περισσότερα γράµµατα ενώ όσα έχουν είναι ίδια. Υπάρχουν συναρτήσεις βιβλιοθήκης που λαµβάνουν υπ όψη και τα αν το γράµµατα είναι κεφαλαία ή πεζά κ.ο.κ. Ακόµη µια συνάρτηση συµβολοσειρών είναι η strcat, η οποία συνενώνει δύο συµβολοσειρές s1 και s2 θέτοντας την s2 τέλος της s1 και το όλο αποτέλεσµα τοποθετείται στην s1. Η λειτουργία αυτή µπορεί να εκφραστεί ως: for (length1 = 0; (s1[length1]); length1++); for (i = 0; (s1[length1+i] = s2[i]); i++); όπου length1 είναι το µήκος της συµβολοσειράς s1. Για παράδειγµα οι πιο κάτω εντολές: strcpy (s1,"christos"); strcpy (s2,"ttofis"); printf("my name is %s.\n",s1); printf("my surname is %s.\n",s2); strcat(s1, " "); strcat(s1, s2); printf("both together are %s.\n",s1); Θα έχουν το ακόλουθο αποτέλεσµα: My name is Christos. My surname is Ttofis. Both together are Christos Ttofis. Η βιβλιοθήκη συναρτήσεων της C για διαχείριση συµβολοσειρών περιέχει πολλές χρήσιµες συναρτήσεις οι οποίες µπορούν να χρησιµοποιηθούν σαν βάση για πιο σύνθετες συναρτήσεις. Ο αναγνώστης προτρέπεται να µελετήσει προσεκτικά αυτή τη βιβλιοθήκη.