From 1ae03dae22ff74cfbe81f926a7e9e00f15200f58 Mon Sep 17 00:00:00 2001 From: alex-stavrin Date: Thu, 18 Dec 2025 18:25:20 +0200 Subject: [PATCH] changed order of lab8 exercise 1 --- labs/lab08/README.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/labs/lab08/README.md b/labs/lab08/README.md index cf1424a..a49e9b0 100644 --- a/labs/lab08/README.md +++ b/labs/lab08/README.md @@ -10,19 +10,15 @@ ## Άσκηση 1: Επεξεργασία συμβολοσειρών - (string.c) -**1.1** Υλοποιήστε τη συνάρτηση `int mystrlen(char *str)` η οποία δέχεται σαν όρισμα μία συμβολοσειρά και επιστρέφει το μήκος της (χωρίς να συμπεριλαμβάνεται ο χαρακτήρας τέλους συμβολοσειράς `'\0'`). -**1.2** Υλοποιήστε τη συνάρτηση `char *mystrcat(char *s1, char *s2)` η οποία προσαρτά ένα αντίγραφο της συμβολοσειράς `s2` στο τέλος της s1 και επιστρέφει στο όνομά της έναν δείκτη στην `s1`. - -**1.3** Κατασκευάστε το πρόγραμμα `string.c`, το οποίο θα συμπεριλαμβάνει +**1.1** Κατασκευάστε το πρόγραμμα `string.c`, το οποίο θα συμπεριλαμβάνει το αρχείο επικεφαλίδας `string.h` και θα πραγματοποιεί το σενάριο που -ακολουθεί. Επίσης, ενσωματώστε στο πρόγραμμα και τις συναρτήσεις που -υλοποιήσατε στην προηγούμενη άσκηση. +ακολουθεί. -**1.3.1** Ορίστε τις συμβολοσειρές `strA` και `strB` με στατική ή δυναμική +**1.2** Ορίστε τις συμβολοσειρές `strA` και `strB` με στατική ή δυναμική δέσμευση μνήμης 80 χαρακτήρων. -**1.3.2** Αντιγράψτε στην `strA` τη συμβολοσειρά `"This is a string."` και στην `strB` τη συμβολοσειρά `"This is another string."` χρησιμοποιώντας την συνάρτηση `strcpy`. +**1.3** Αντιγράψτε στην `strA` τη συμβολοσειρά `"This is a string."` και στην `strB` τη συμβολοσειρά `"This is another string."` χρησιμοποιώντας την συνάρτηση `strcpy`. ```c char *strcpy(char *s1, const char *s2) @@ -30,7 +26,11 @@ Η συνάρτηση `strcpy` αντιγράφει τη συμβολοσειρά `s2` στην `s1` και επιστρέφει την τιμή του δείκτη (char *) στον οποίο έκανε την αντιγραφή (σε αυτό το παράδειγμα επιστρέφει την τιμή της μεταβλητής `s1`). Χρησιμοποιώντας την `printf("%p %p %p\n", ...)` τυπώστε τους τρεις δείκτες που συμμετέχουν στην κλήση αυτής της συνάρτησης (`s1`, `s2` και την τιμή επιστροφής της `strcpy`). -**1.3.3** Εκτυπώστε τις δύο συμβολοσειρές και το μήκος τους. Υπολογίστε +**1.4** Υλοποιήστε τη συνάρτηση `int mystrlen(char *str)` η οποία δέχεται σαν όρισμα μία συμβολοσειρά και επιστρέφει το μήκος της (χωρίς να συμπεριλαμβάνεται ο χαρακτήρας τέλους συμβολοσειράς `'\0'`). + +**1.5** Υλοποιήστε τη συνάρτηση `char *mystrcat(char *s1, char *s2)` η οποία προσαρτά ένα αντίγραφο της συμβολοσειράς `s2` στο τέλος της s1 και επιστρέφει στο όνομά της έναν δείκτη στην `s1`. + +**1.6** Εκτυπώστε τις δύο συμβολοσειρές και το μήκος τους. Υπολογίστε το μήκος της `strA` μέσω της συνάρτησης `mystrlen` που υλοποιήσατε στην άσκηση 1 και το μήκος της `strB` μέσω της συνάρτησης `strlen` της C. @@ -40,7 +40,7 @@ Η συνάρτηση `strlen` επιστρέφει στο όνομα της το μήκος της συμβολοσειράς `s` (χωρίς να μετράται το τελικό `'\0'`). -**1.3.4** Συγκρίνετε αλφαβητικά τις συμβολοσειρές `strA` και `strB` +**1.7** Συγκρίνετε αλφαβητικά τις συμβολοσειρές `strA` και `strB` εκτυπώνοντας κατάλληλο μήνυμα. ```c @@ -54,7 +54,7 @@ 2. `> 0`, αν η `s1` είναι λεξικογραφικά «μεγαλύτερη» της `s2` 3. `< 0`, αν η `s1` είναι λεξικογραφικά «μικρότερη» της `s2` -**1.3.5** Προσαρτήστε τη συμβολοσειρά `strB` στο τέλος της `strA` +**1.8** Προσαρτήστε τη συμβολοσειρά `strB` στο τέλος της `strA` (χρησιμοποιώντας τη συνάρτηση `mystrcat` που υλοποιήσατε παραπάνω) και εκτυπώστε το αποτέλεσμα της προσάρτησης. Στη συνέχεια, προσαρτήστε τη νέα τιμή της συμβολοσειράς `strA` στο τέλος της `strB` (χρησιμοποιώντας @@ -67,7 +67,7 @@ Η `strcat` προσαρτά / συνενώνει (concatenates) ένα αντίγραφο της συμβολοσειράς `s2` στο τέλος της `s1` και επιστρέφει στο όνομά της έναν δείκτη στην `s1`. -**1.3.6** Χρησιμοποιήστε τη συνάρτηση `strtok` για να εκτυπώσετε μία προς +**1.9** Χρησιμοποιήστε τη συνάρτηση `strtok` για να εκτυπώσετε μία προς μία τις λέξεις που εμφανίζονται στην τελική συμβολοσειρά `strB`, χωρίς τους χαρακτήρες στίξης.