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

Α9.22 · Πλαγιαστά Γράμματα

Online τελική εξέταση Δεκεμβρίου 2023, Εξέταση #15, Θέμα 1 · Δυσκολία ★☆☆ · programming · Κεφάλαια: 9

Πρόγραμμα: italics.c

Γράψτε ένα πρόγραμμα που διαβάζει από την πρότυπη είσοδο (stdin) ένα κείμενο και το τυπώνει στην πρότυπη έξοδο (stdout) αφού πρώτα μετατρέψει τα γράμματα εντός των αστερίσκων (*) σε πλαγιαστά γράμματα (italics). Τα γράμματα που βρίσκονται εκτός αστερίσκων δεν χρειάζεται να αλλαχθούν. Οι αστερίσκοι θα παραλείπονται στην έξοδο του προγράμματος. Παράδειγμα εκτέλεσης ακολουθεί:

$ cat ithaca.txt
As you set out for Ithaka
hope your road is a *long one*,
full of adventure, *full of discovery*.
Laistrygonians, Cyclops,
angry Poseidon *do not be afraid of them*.
$ gcc -o italics italics.c
$ ./italics < ithaca.txt
As you set out for Ithaka
hope your road is a long one,
full of adventure, full of discovery.
Laistrygonians, Cyclops,
angry Poseidon do not be afraid of them.

Σημείωση: στο πρωτότυπο το παράδειγμα δίνεται ως στιγμιότυπο τερματικού (italics.png) και εδώ μεταγράφεται ως κείμενο: στην έξοδο τα κείμενα «long one», «full of discovery» και «do not be afraid of them» εμφανίζονται πλάγια.

Υπόδειξη

Κρατήστε μια σημαία «είμαι μέσα σε αστερίσκους» που αλλάζει σε κάθε *, και τυπώστε τους υπόλοιπους χαρακτήρες όπως είναι. Το «έντονο» (και αντίστοιχα το πλάγιο ή το αναβόσβημα) στο τερματικό γίνεται με ακολουθίες διαφυγής ANSI (ANSI escape codes) που τυπώνετε πριν και μετά το κείμενο, π.χ. \033[...m· ψάξτε ποιος κωδικός αντιστοιχεί στο εφέ που θέλετε και ποιος τα επαναφέρει.

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