1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:02,690 >> DAVID MALAN: Ας υποθέσουμε ότι θα ήθελα να γράψω ένα πρόγραμμα που ζητά από το χρήστη 3 00:00:02,690 --> 00:00:05,100 για μια σειρά και στη συνέχεια να κεφαλαιοποιεί η συμβολοσειρά. 4 00:00:05,100 --> 00:00:09,000 Λοιπόν, ας ξεκινήσουμε με κάποια οικεία κώδικα που κηρύσσει μια σειρά που ονομάζεται s και 5 00:00:09,000 --> 00:00:11,380 αναθέσουν την επιστροφή αξία της GetString. 6 00:00:11,380 --> 00:00:14,910 Και ας προχωρήσουμε τώρα για να μετακινηθείτε πάνω οι χαρακτήρες αυτής της σειράς. 7 00:00:14,910 --> 00:00:16,000 Λοιπόν, πώς να το κάνουμε αυτό; 8 00:00:16,000 --> 00:00:19,350 Αποδεικνύεται ότι ένα string είναι απλά μια ακολουθία χαρακτήρων, αλλά περισσότερο 9 00:00:19,350 --> 00:00:23,320 σωστά, μια συμβολοσειρά είναι ένας πίνακας χαρακτήρες, που σημαίνει ότι μπορούμε να χρησιμοποιήσουμε 10 00:00:23,320 --> 00:00:27,590 αγκύλη σημειογραφία δείκτη σε μια σειρά και να πάρει σε ατομικό 11 00:00:27,590 --> 00:00:28,680 χαρακτήρων. 12 00:00:28,680 --> 00:00:30,980 >> Με άλλα λόγια, μπορούμε να ακολουθήστε τα παρακάτω βήματα. 13 00:00:30,980 --> 00:00:36,730 Για int, i παίρνει 0, και n παίρνει, δηλαδή, το μήκος του s, χρησιμοποιώντας 14 00:00:36,730 --> 00:00:37,530 λειτουργία μας [; ανακατεύετε?] 15 00:00:37,530 --> 00:00:38,630 [? γραμμή,?] 16 00:00:38,630 --> 00:00:40,450 i είναι μικρότερο από N i + +. 17 00:00:40,450 --> 00:00:45,290 Με άλλα λόγια, με αυτό το βρόχο, εμείς θα επαναλάβει πάνω από όλα τα γράμματα n 18 00:00:45,290 --> 00:00:46,670 στη συμβολοσειρά s. 19 00:00:46,670 --> 00:00:51,680 Και μέσα σε αυτό το βρόχο, Πάω να ελέγξτε, αν το i-οστό χαρακτήρα s 20 00:00:51,680 --> 00:00:57,630 μεγαλύτερη ή ίση με πεζά α, και το i-th χαρακτήρας είναι μικρότερη ή 21 00:00:57,630 --> 00:01:02,370 ίση με πεζά c, τότε θέλω να προχωρήσει να κεφαλαιοποιήσει αυτό το γράμμα. 22 00:01:02,370 --> 00:01:08,030 Με άλλα λόγια, θέλω να εκτυπώσετε% c ως σύμβολο κράτησης θέσης και υποκατάστατο για 23 00:01:08,030 --> 00:01:11,120 βραχίονα του εν λόγω κράτησης θέσης s i. 24 00:01:11,120 --> 00:01:14,390 >> Αλλά τότε θα πρέπει να μετατρέψετε s βραχίονα i σε κεφαλαία. 25 00:01:14,390 --> 00:01:18,930 Για να το κάνετε αυτό, απλά μπορώ να αφαιρέσετε ό, τι είναι η διαφορά μεταξύ 26 00:01:18,930 --> 00:01:24,120 πεζά και ένα κεφάλαιο Α. Λοιπόν, εγώ πραγματικά θυμάμαι ότι το κεφάλαιο Α είναι 27 00:01:24,120 --> 00:01:27,160 65 σε ASCII, και πεζά ένα είναι 97. 28 00:01:27,160 --> 00:01:29,210 Έτσι, η διαφορά είναι τεχνικά 32. 29 00:01:29,210 --> 00:01:31,620 Γι 'αυτό και θα μπορούσε μόνο σκληρή κωδικό 32 εδώ. 30 00:01:31,620 --> 00:01:33,870 Αλλά εγώ ίσως δεν είναι απαραίτητα θυμηθείτε αυτούς τους αριθμούς. 31 00:01:33,870 --> 00:01:37,250 >> Και επιπλέον, τι και αν διαφέρουν ανάλογα με τον υπολογιστή; 32 00:01:37,250 --> 00:01:38,520 Το πιο πιθανό είναι ότι δεν είναι. 33 00:01:38,520 --> 00:01:42,460 Αλλά το ζήτημα παραμένει ότι μπορώ ακόμα γενικεύουμε ότι αριθμητική έκφραση 34 00:01:42,460 --> 00:01:46,550 όπως ακριβώς ό, τι η διαφορά είναι μεταξύ πεζών και ένα κεφάλαιο Α 35 00:01:46,550 --> 00:01:50,880 είναι αυτό που θέλω να αφαιρούμε από αυτό το συγκεκριμένο πεζό γράμμα. 36 00:01:50,880 --> 00:01:54,500 >> Τώρα, εάν αυτό το συγκεκριμένο γράμμα Δεν είναι πεζά, εγώ απλά 37 00:01:54,500 --> 00:01:56,620 θέλετε να το εκτυπώσετε. 38 00:01:56,620 --> 00:02:01,110 printf, γ% ως αντικαταστάτης μου, s βραχίονα i. 39 00:02:01,110 --> 00:02:05,150 Στο κάτω μέρος αυτού του προγράμματος, ας απλά να εκτυπώσετε αλλαγή γραμμής, έτσι ώστε μου 40 00:02:05,150 --> 00:02:07,520 εμφανίζεται το μήνυμα για μια νέα γραμμή της δικής του. 41 00:02:07,520 --> 00:02:11,540 >> Ας τώρα να μεταγλωττίσετε το πρόγραμμα αυτό με make capitalize0. 42 00:02:11,540 --> 00:02:13,900 Ας τρέξει με capitalize0. 43 00:02:13,900 --> 00:02:17,190 Και ας πληκτρολογήσετε μια λέξη όπως γεια σε όλα τα πεζά. 44 00:02:17,190 --> 00:02:19,960 Παίρνω πίσω ΓΕΙΑ με κεφαλαία γράμματα όπως αναμενόταν. 45 00:02:19,960 --> 00:02:25,210 Αλλά ας προσπαθήσουμε μια ακόμη δοκιμασία, αυτή τη φορά με το δικό μου όνομα, D-Α-V-Ι-Α, αλλά με 46 00:02:25,210 --> 00:02:28,170 το πρώτο Α κεφαλαίο, μόνο στην περίπτωση που κάτι επάνω μπέρδεμα 47 00:02:28,170 --> 00:02:29,430 αυτό το πρώτο char. 48 00:02:29,430 --> 00:02:34,250 Enter, και D-Α-V-Ι-Α κεφαλαίο εκτυπώνεται επίσης. 49 00:02:34,250 --> 00:02:36,873