DAVID MALAN: Ας δούμε τώρα βελτιώσετε το πρόγραμμα αυτό λίγο περισσότερο. Δεν θα ήταν ωραίο αν θα μπορούσε toupper ένα γράμμα κεφαλαίο, αν πεζά, και αν όχι πεζά, περνούν μέσω αμετάβλητο; Με άλλα λόγια, θα μπορούσε να αντικαταστήσω μου αν-άλλο μπλοκ με ένα μόνο κλήση για toupper; Λοιπόν, για να απαντήσουμε στο ερώτημα αυτό, Θα διαβουλεύονται καλύτερα η τεκμηρίωση για toupper. Για να γίνει αυτό, επιτρέψτε μου να ανοίξει ένα μεγαλύτερο τερματικό έξω από το παράθυρο του gedit, και στη συνέχεια, πληκτρολογήστε τον άνθρωπο toupper, έτσι που σημαίνει ότι θα ήθελα να ανοίξετε το λεγόμενη σελίδα man η toupper λειτουργία. Μετά το χτύπημα Enter, βλέπω μια οθόνη σαν αυτή. Και τώρα παρατηρήσετε ότι φαίνεται να έχουν σε συνδυασμό την τεκμηρίωση για toupper επάνω με αυτό για tolower. Αλλά δεν έχει σημασία. Θα παρατηρήσετε υπό την σύνοψη που Είμαι θύμισε ότι, πράγματι, να χρησιμοποιήσετε αυτό λειτουργία, θα πρέπει να περιλαμβάνει τα ctype.h αρχείο κεφαλίδας. Κάτω από αυτό, θα δείτε ότι είναι toupper δηλώνονται ως επιστροφή ενός int και για την αποδοχή int, το οποίο είναι λίγο περίεργος, δεδομένου ότι μέχρι τώρα, έχω πάει χειρισμό μόνο χαρακτήρες. Αλλά αυτό είναι εντάξει. Αποδεικνύεται ότι αυτό είναι μόνο ένα σύμβαση, και μπορούμε ακόμα να χρησιμοποιήσετε c ως αν και είναι μια χαρα, παρόλο είναι δηλωθεί ως int. Τώρα, στην περιγραφή εδώ, βλέπω ότι toupper μετατρέπει το γράμμα c για να κεφαλαία αν είναι δυνατόν. Και κάτω από την αξία επιστροφής, βλέπω ότι η τιμή που επιστρέφεται είναι εκείνη η μετατραπεί επιστολή, ή γ, αν η μετατροπή δεν ήταν δυνατή. Και υπάρχει η επίγνωση Έψαχνα. Αν το c δεν είναι, στην πραγματικότητα, ένα πεζό επιστολή, φαίνεται ότι θα toupper απλά να περάσει μαζί αμετάβλητες. Οπότε ας επιστρέψουμε τώρα τον κωδικό μου. Και τώρα ας αφαιρέστε το σύνολο των αυτό εξαρτάται από μπλοκ και να την αντικαταστήσει, πολύ απλά, με το printf% γ κόμμα toupper του s βραχίονα κλείνω paren κοντά paren ερωτηματικό, με τον τρόπο αυτό που σημαίνει ότι θα ήθελα να αντικαταστήσει% c με την κεφαλαιοποίηση της επιστολή υπ 'αριθ. i στο s αν το i- επιστολή s είναι πεζά. Ή ακόμα και αν δεν είναι, θα είναι διαβιβάζεται αμετάβλητη. Ας τώρα να μεταγλωττίσετε το πρόγραμμα με capitalize2 κάνει, και να το εκτελέσετε με capitalize2, πάλι, πληκτρολογώντας ένα γεια. Και πράγματι, θα πάρει πίσω κεφαλαία. Ας πάλι πληκτρολογήστε David. Και αυτό, επίσης, είναι με κεφαλαία γράμματα.