ΟΜΙΛΗΤΗΣ: Ας γράψουμε ένα πρόγραμμα που προσπαθεί να αντιγράψετε δύο χορδές. Έχω ήδη πάρει ξεκίνησε με το πρώτο εκτύπωση «Πες κάτι». I επόμενο καλέστε GetString, την αποθήκευση η επιστρεφόμενη τιμή s. Και τότε βεβαιωθείτε ότι s δεν είναι null. Ας κάνουν το επόμενο μας αντίγραφο του S. Πάω να κηρύξει μια νέα μεταβλητή, t, και αποθηκεύστε σε αυτό s. Είμαι δίπλα πρόκειται να ζητήσει, με printf, ότι είμαι πρόκειται να κεφαλαιοποιήσει αυτό το αντίγραφο. Είμαι δίπλα πρόκειται να ελέγξετε ότι το t είναι τουλάχιστον μεγαλύτερη από μηδέν σε μήκος, έτσι ώστε Δεν λάθος να προσπαθήσει να κεφαλαιοποιήσει ένα γράμμα που δεν είναι εκεί. Μόλις είμαι σίγουρος, είμαι πρόκειται να αλλάξει η αξία σε t βραχίονα 0 να είναι η επιστροφή αξία της toupper, μια λειτουργία που μετατρέπει την είσοδο του σε κεφαλαία, περνώντας ως t βραχίονα είσοδο του 0. Τέλος, Πάω να εκτυπώσετε ό, τι η αρχική τιμή ήταν, η οποία, από Φυσικά, ήταν s. Και στη συνέχεια, Πάω να εκτυπώσετε αυτό το αξία του αντιγράφου είναι, το οποίο είναι τ. Όταν τώρα καταρτίζουν και να τρέξει αυτό το πρόγραμμα, Ελπίζω να δω την αρχική μου εισόδου ακολουθείται από ένα αντίγραφό του με μόνο το αντίγραφο κεφαλαιοποιούνται. Αλλά ας ελέγξει. Κάντε ένα αντίγραφο 0,. / Αντιγραφή 0. Και εγώ θα παρέχει μια είσοδο, ας πούμε, γειά σου, αλλά σε όλα τα πεζά, και στη συνέχεια πατήστε Enter. Δυστυχώς, φαίνεται ότι τόσο η πρωτότυπο και το αντίγραφο είναι τώρα "Hello" με κεφαλαίο Ι. Αλλά αυτό είναι προφανώς δεν είναι αυτό που θα πληκτρολογήσει. Έτσι, προφανώς, όταν κεφαλαιοποιούνται t, I κεφαλαιοποιούνται κατά κάποιο τρόπο s, ακόμα κι αν νόμιζα ότι είχε κάνει ένα αντίγραφο του s και αποκαλώντας το t. Σίγουρα, κάτι εδώ, είναι λάθος. Αλλά πώς μπορούμε να το διορθώσω;