Προς το περιεχόμενο

ΕΚΣΦΑΛΜΑΤΩΣΗ ΠΡΟΓΡΑΜΜΑΤΟΣ ΣΕ C


nek1313

Προτεινόμενες αναρτήσεις

Δημοσ. (επεξεργασμένο)
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.

Επεξ/σία από kaliakman
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
23 λεπτά πριν, LukaP είπε

Χαίρετε,

παρατηρώ το τελικό κώδικα του αρχικού συντάκτη @nek1313 και τις βελτιώσεις που προτείνατε οι @imitheos & @kaliakman και πιο συγκεκριμένα το να χρησιμοποιήσει μέσα στην printf την toupper για τους ευνόητους λόγους. Πως θα μπορούσε όμως να το κάνει κάποιος αυτό, αφού η toupper είναι μέσα σε βρόχο και όπως επισημάνθηκε χωρίς να χρησιμοποιηθεί κάποια προσωρινή μεταβλητή; Μπορεί η όλη λειτουργικότητα ενός βρόχoυ να μπει μέσα σε ένα printf; Αν ναι, πως ακριβώς γίνεται; 

Που το θυμήθηκες μετά από τόσα χρόνια; :)

Ο κώδικας του nek1313 έτρεχε μέσα σε ένα βρόχο την toupper και άλλαζε την μεταβλητή argv[τάδε]. Έπειτα τύπωνε με printf την μεταβλητή σαν "string". Μπορείς να πετάξεις την toupper μέσα στην printf σαν όρισμα και να τυπώνεις ένα - ένα χαρακτήρα μέσα στο βρόχο.

Edit: Με πρόλαβε ο kaliakman. Αυτό που έγραψε εννοούσα (έτσι υποθέτω τουλάχιστον :P γιατί μιλάμε για το 2018)

Δεν ήθελα να γράψω τη λύση γιατί βλέπω ότι έχεις μόνο 1 μήνυμα οπότε για να έκανες register μόνο για αυτό, μου φαντάζει άσκηση.

Επεξ/σία από imitheos
  • Like 1
  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...