kaliakman Δημοσ. 15 Νοεμβρίου 2021 Δημοσ. 15 Νοεμβρίου 2021 (επεξεργασμένο) 21 λεπτά πριν, LukaP είπε Χαίρετε, παρατηρώ το τελικό κώδικα του αρχικού συντάκτη @nek1313 και τις βελτιώσεις που προτείνατε οι @imitheos & @kaliakman και πιο συγκεκριμένα το να χρησιμοποιήσει μέσα στην printf την toupper για τους ευνόητους λόγους. Πως θα μπορούσε όμως να το κάνει κάποιος αυτό, αφού η toupper είναι μέσα σε βρόχο και όπως επισημάνθηκε χωρίς να χρησιμοποιηθεί κάποια προσωρινή μεταβλητή; Μπορεί η όλη λειτουργικότητα ενός βρόχoυ να μπει μέσα σε ένα printf; Αν ναι, πως ακριβώς γίνεται; int main(int argc, char *argv[]) { if (argc == 1) { printf("Not enough arguments. Exiting..\n"); return -1; } int pos_max = 0; int max = 0; for (int i = 1; i < argc; i++) { int arg_len = strlen(argv[i]); if (arg_len > max) { max = arg_len; pos_max = i; } } int curr = 0; while (argv[pos_max][curr]) { printf("%c", toupper(argv[pos_max][curr++])); } printf("\n"); return 0; } Που το ξέθαψες το θέμα; Με μια γρήγορη ματιά αυτό ήθελε να πει φαντάζομαι ο imitheos. Επεξ/σία 15 Νοεμβρίου 2021 από kaliakman 1
imitheos Δημοσ. 15 Νοεμβρίου 2021 Δημοσ. 15 Νοεμβρίου 2021 (επεξεργασμένο) 23 λεπτά πριν, LukaP είπε Χαίρετε, παρατηρώ το τελικό κώδικα του αρχικού συντάκτη @nek1313 και τις βελτιώσεις που προτείνατε οι @imitheos & @kaliakman και πιο συγκεκριμένα το να χρησιμοποιήσει μέσα στην printf την toupper για τους ευνόητους λόγους. Πως θα μπορούσε όμως να το κάνει κάποιος αυτό, αφού η toupper είναι μέσα σε βρόχο και όπως επισημάνθηκε χωρίς να χρησιμοποιηθεί κάποια προσωρινή μεταβλητή; Μπορεί η όλη λειτουργικότητα ενός βρόχoυ να μπει μέσα σε ένα printf; Αν ναι, πως ακριβώς γίνεται; Που το θυμήθηκες μετά από τόσα χρόνια; Ο κώδικας του nek1313 έτρεχε μέσα σε ένα βρόχο την toupper και άλλαζε την μεταβλητή argv[τάδε]. Έπειτα τύπωνε με printf την μεταβλητή σαν "string". Μπορείς να πετάξεις την toupper μέσα στην printf σαν όρισμα και να τυπώνεις ένα - ένα χαρακτήρα μέσα στο βρόχο. Edit: Με πρόλαβε ο kaliakman. Αυτό που έγραψε εννοούσα (έτσι υποθέτω τουλάχιστον γιατί μιλάμε για το 2018) Δεν ήθελα να γράψω τη λύση γιατί βλέπω ότι έχεις μόνο 1 μήνυμα οπότε για να έκανες register μόνο για αυτό, μου φαντάζει άσκηση. Επεξ/σία 15 Νοεμβρίου 2021 από imitheos 1 1
LukaP Δημοσ. 15 Νοεμβρίου 2021 Δημοσ. 15 Νοεμβρίου 2021 Κατανοητό, ευχαριστώ. Το έχω αυτό, να ξεθάβω θέματα που έχουν να κάνουν με βελτιστοποίηση και εκσφαλμάτωση συγκεκριμένου κώδικα !
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα