Οδηγός Μελέτης - Εισαγωγή στον Προγραμματισμό

Α14.19 · Τα Πάνω Κάτω

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #4 (Rick Astley Themed), Θέμα 2 · Δυσκολία ★★☆ · programming · Κεφάλαια: 14, 9

Πρόγραμμα: updown.c (25 μονάδες)

Γράψτε ένα πρόγραμμα που διαβάζει το κείμενο που δίνεται από την πρότυπη είσοδο (stdin) και τυπώνει την κάθε λέξη χαρακτήρα στην πρότυπη έξοδο (stdout) έχοντας κάνει την εξής αντικατάσταση: κάθε λέξη “up” πρέπει να αντικατασταθεί με την λέξη “down” και κάθε “down” πρέπει να αντικατασταθεί με την λέξη “up”. Οι λέξεις χωρίζονται με κενά (whitespace). Η αντικατάσταση πρέπει να γίνεται σε ολόκληρες λέξεις, όχι μέρος τους. Παράδειγμα εκτέλεσης:

$ cat rick.txt
upload and download this �:
never gonna give you up ,
never gonna let you down ,
never gonna run around and desert you !
$ gcc -o updown updown.c
$ ./updown < rick.txt
upload and download this �:
never gonna give you down ,
never gonna let you up ,
never gonna run around and desert you !

Υπόδειξη

Συγκεντρώστε κάθε λέξη (μέγιστη ακολουθία χαρακτήρων που δεν είναι whitespace) σε έναν buffer και, μόλις τελειώσει, συγκρίνετέ την με strcmp με τα "up" και "down" πριν την τυπώσετε· τα whitespace αντιγράφονται αυτούσια. Προσοχή στις πολύ μεγάλες λέξεις (δεν χωράνε σε σταθερό buffer, αλλά αρκεί να ξέρετε ότι δεν είναι ούτε up ούτε down) και στην τελευταία λέξη όταν το αρχείο δεν τελειώνει σε αλλαγή γραμμής.

Αριθμός στον οδηγό: Α14.19 (στο κεφάλαιο) · Μόνιμο αναγνωριστικό: exam-2023-fall-ex4-q2 · Σύνδεσμος: https://progintro.github.io/study/questions/exams/exam-2023-fall-ex4-q2.html · Markdown (GitHub)