1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. MALAN: Ας γράψουμε ένα πρόγραμμα που ζητά από το χρήστη για μια σειρά και 3 00:00:03,140 --> 00:00:07,210 στη συνέχεια να προχωρήσει για να εκτυπώσετε αυτό το αλφαριθμητικό χαρακτήρα για τον χαρακτήρα μία ανά γραμμή. 4 00:00:07,210 --> 00:00:10,570 Τώρα, στο παρελθόν, θα το είχε πράξει πιθανώς με τετράγωνο σημειογραφία βραχίονα, 5 00:00:10,570 --> 00:00:13,680 την αποτελεσματική αντιμετώπιση ένα string είναι μία σειρά χαρακτήρων. 6 00:00:13,680 --> 00:00:17,200 >> Αλλά αυτή τη φορά, ας αντί για θεραπεία μια σειρά για αυτό που είναι πραγματικά, ένα 7 00:00:17,200 --> 00:00:18,770 δείκτης ή μια διεύθυνση. 8 00:00:18,770 --> 00:00:22,420 Συγκεκριμένα, η διεύθυνση ενός χαρακτήρα, πραγματικά η διεύθυνση του 9 00:00:22,420 --> 00:00:25,740 πρώτο χαρακτήρα, σε μια αλληλουχία χαρακτήρες που συλλογικά γνωρίζουμε 10 00:00:25,740 --> 00:00:26,860 ως ένα string. 11 00:00:26,860 --> 00:00:30,740 >> Ας πρώτα να δηλώσει ένα string για να αυτό που πραγματικά είναι, char *. 12 00:00:30,740 --> 00:00:31,770 Και θα το ονομάσουμε s. 13 00:00:31,770 --> 00:00:34,670 Και στη συνέχεια να εκχωρήσετε την επιστροφή αξία του get συμβολοσειράς. 14 00:00:34,670 --> 00:00:36,380 >> Ας επόμενο κάνετε κάποια έλεγχος σφαλμάτων. 15 00:00:36,380 --> 00:00:42,920 Αν s είναι null, ας επιστρέψει αμέσως έτσι ώστε να μην κατά λάθος 16 00:00:42,920 --> 00:00:45,630 dereference εν λόγω δείκτη null. 17 00:00:45,630 --> 00:00:49,750 >> Στη συνέχεια, ας επαναλήψεις κατά τη διάρκεια των χαρακτήρες σε s ως ακολούθως. 18 00:00:49,750 --> 00:00:52,390 Για int, i παίρνει 0. 19 00:00:52,390 --> 00:00:55,890 n ισούται με το μήκος της συμβολοσειράς s. 20 00:00:55,890 --> 00:00:58,050 Κάνετε αυτό όσο το i είναι μικρότερο από n. 21 00:00:58,050 --> 00:01:00,690 Και σε κάθε επανάληψη, αυξήσετε i. 22 00:01:00,690 --> 00:01:02,710 >> Και τι θέλουμε να κάνουμε σε κάθε επανάληψη; 23 00:01:02,710 --> 00:01:06,180 Ας τώρα να εκτυπώσετε σε κάθε επανάληψη ένα ενιαίο χαρακτήρα 24 00:01:06,180 --> 00:01:07,910 ακολουθείται από μια νέα γραμμή. 25 00:01:07,910 --> 00:01:10,010 Λοιπόν, τι κάνουμε χαρακτήρα θέλουμε να εκτυπώσετε; 26 00:01:10,010 --> 00:01:16,850 Προτείνω να πάμε στη διεύθυνση ότι ισούται με το άθροισμα των s συν ί. 27 00:01:16,850 --> 00:01:18,390 >> Τώρα, γιατί η έκφραση αυτή; 28 00:01:18,390 --> 00:01:22,130 Λοιπόν, υπενθυμίζουν ότι αποθηκεύονται σε s είναι η διεύθυνση του πρώτου χαρακτήρα 29 00:01:22,130 --> 00:01:23,490 στη σειρά μας, s. 30 00:01:23,490 --> 00:01:27,470 Εν τω μεταξύ, εγώ είναι να αυξάνεται σε κάθε επανάληψη, έτσι ώστε να ξεκινά στις 0, 31 00:01:27,470 --> 00:01:29,590 τότε πηγαίνει στο 1, τότε πηγαίνει στο 2. 32 00:01:29,590 --> 00:01:33,870 >> Έτσι με άλλα λόγια, s plus i αποτελεσματικά αντιπροσωπεύει τη διεύθυνση της 33 00:01:33,870 --> 00:01:35,990 το i-οστό χαρακτήρα s. 34 00:01:35,990 --> 00:01:40,830 Έτσι, αν πάμε σε αυτή τη διεύθυνση μέσω της ο φορέας εκμετάλλευσης *, θα πάμε να το 35 00:01:40,830 --> 00:01:42,650 i-th χαρακτήρα της συμβολοσειράς. 36 00:01:42,650 --> 00:01:45,700 Και αυτή είναι η τιμή που θα είναι αντικατασταθεί κράτησης θέσης μας, 37 00:01:45,700 --> 00:01:46,840 τοις εκατό C. 38 00:01:46,840 --> 00:01:47,840 >> Ας επιβεβαιώσει τόσο πολύ. 39 00:01:47,840 --> 00:01:51,720 Ας σώσει, την κατάρτιση, και εκτελέσετε αυτό το πρόγραμμα. 40 00:01:51,720 --> 00:01:55,990 Κάντε δείκτες, δείκτες dot κάθετος. 41 00:01:55,990 --> 00:01:58,780 Και τώρα θα σας δώσω μια συμβολοσειρά όπως γειά σου. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> Και πράγματι, βλέπω H-Ε-Ε-Ε-Ο, με κάθε char στη δική της γραμμή. 44 00:02:03,770 --> 00:02:05,410