1
00:00:00,000 --> 00:00:00,560

2
00:00:00,560 --> 00:00:02,460
>> DAVID J. MALAN: Ας πάρουμε τα πράγματα
ένα βήμα παραπέρα, τώρα.

3
00:00:02,460 --> 00:00:05,450
Ας υποθέσουμε ότι δεν θέλουν απλά
την εκτύπωση όλων των προγραμμάτων μου

4
00:00:05,450 --> 00:00:06,630
επιχειρήματα της γραμμής εντολών.

5
00:00:06,630 --> 00:00:10,490
Αλλά εγώ, αντ 'αυτού, θέλετε να εκτυπώσετε όλα τα
μεμονωμένων χαρακτήρων σε κάθε ένα από

6
00:00:10,490 --> 00:00:14,060
επιχειρήματα της γραμμής εντολών μου, μία ανά
γραμμή, έτσι ώστε κατά την λειτουργία αυτή

7
00:00:14,060 --> 00:00:17,490
πρόγραμμα, απλά δείτε ένα ρεύμα
χαρακτήρες στην οθόνη ότι

8
00:00:17,490 --> 00:00:20,700
συλλογικά είναι από αυτή την ακολουθία μου
επιχειρήματα της γραμμής εντολών.

9
00:00:20,700 --> 00:00:21,980
>> Λοιπόν, πώς μπορώ να κάνω αυτό;

10
00:00:21,980 --> 00:00:26,540
Μπορώ να κρατήσει ανέπαφη βρόχο μου από πριν
όπου I 'Επαναληπτική από i μέχρι

11
00:00:26,540 --> 00:00:30,060
Argc, προκειμένου να ενσωματωθούν κατά τη διάρκεια των
οι ίδιοι επιχειρήματα της γραμμής εντολών.

12
00:00:30,060 --> 00:00:34,460
Αλλά τώρα, σε κάθε επανάληψη του εν λόγω
βρόχο, θα πρέπει να επαναλάβει τώρα πάνω από κάθε

13
00:00:34,460 --> 00:00:38,550
από τους χαρακτήρες ή χαρακτήρες
σε μια συγκεκριμένη συμβολοσειρά.

14
00:00:38,550 --> 00:00:40,620
Έτσι για να το κάνουμε αυτό, θα πρέπει να έχετε ένα πιο βρόχο.

15
00:00:40,620 --> 00:00:42,090
>> Ας προσθέσω ότι.

16
00:00:42,090 --> 00:00:46,890
για int, ας το ονομάσουμε j, ισούται με 0.

17
00:00:46,890 --> 00:00:49,980
Τώρα είμαι πρόκειται να πρέπει να ενσωματώσει
μέχρι το μήκος του

18
00:00:49,980 --> 00:00:52,310
ρεύμα στοιχειοσειράς στο argv.

19
00:00:52,310 --> 00:00:55,910
Έτσι, επιτρέψτε μου να δώσω στον εαυτό μου μια άλλη τοπική
μεταβλητή, θα το ονομάσουμε n, και να ορίσετε

20
00:00:55,910 --> 00:01:00,120
ότι ισούται με το μήκος της συμβολοσειράς
τρέχουσα επιχείρημα, το οποίο πρόκειται να είναι

21
00:01:00,120 --> 00:01:04,230
βρέθηκαν στο argv βραχίονα i ερωτηματικό.

22
00:01:04,230 --> 00:01:08,500
>> Επιτρέψτε μου τώρα να επαναλάβει από j μέχρι
μέχρι n ακολουθούμενη από μια

23
00:01:08,500 --> 00:01:10,400
αυξήσετε σε κάθε επανάληψη.

24
00:01:10,400 --> 00:01:13,850
Ας τώρα να εκτυπώσετε το άτομο
χαρακτήρες στην οθόνη.

25
00:01:13,850 --> 00:01:21,920
Printf% C Αυτό το χρονικό διάστημα που ακολουθείται από ένα νέο
γραμμή, κοντά απόσπασμα, κόμμα, και τώρα

26
00:01:21,920 --> 00:01:25,565
χρειάζονται την ι-ου χαρακτήρα
στο επιχείρημα i-th.

27
00:01:25,565 --> 00:01:30,240
>> Έτσι για να πάρετε σε αυτό, μπορώ απλά
καθορίσετε βραχίονα ARV i να

28
00:01:30,240 --> 00:01:32,050
πάρετε το επιχείρημα i-th.

29
00:01:32,050 --> 00:01:36,140
Και τότε μπορώ να βουτήξει σε ένα βαθύτερο επίπεδο
και να κάνουμε ένα δευτερεύον ευρετήριο του

30
00:01:36,140 --> 00:01:40,420
βραχίονα j, κοντά παρένθεση,
ερωτηματικό, Αποθήκευση.

31
00:01:40,420 --> 00:01:43,610
Και ας πάμε τώρα καταρτίζουν και να
εκτελέσετε αυτό το πρόγραμμα.

32
00:01:43,610 --> 00:01:46,630
>> Κάντε ARGV2 -

33
00:01:46,630 --> 00:01:48,440
δεν είναι αρκετά αυτό που περίμενα.

34
00:01:48,440 --> 00:01:50,740
Ας μετακινηθείτε στο πρώτο
από αυτά τα μηνύματα λάθους.

35
00:01:50,740 --> 00:01:54,540
Και στο κόκκινο εδώ, βλέπουμε σφάλμα,
σιωπηρά δηλώνοντας συνάρτηση βιβλιοθήκης

36
00:01:54,540 --> 00:01:56,290
strlen με τον τύπο -

37
00:01:56,290 --> 00:01:57,380
oh, περιμένετε ένα λεπτό.

38
00:01:57,380 --> 00:02:00,340
Αυτή είναι η πρώτη φορά που έχω χρησιμοποιήσει
strlen, και δεν είχα προβλέψει

39
00:02:00,340 --> 00:02:04,970
θέλουν αυτό στην αρχή, γι 'αυτό δεν περιλαμβάνει
το αρχείο κεφαλίδας που δηλώνει

40
00:02:04,970 --> 00:02:06,290
συνάρτηση μήκος συμβολοσειράς.

41
00:02:06,290 --> 00:02:09,419
>> Έτσι, στην κορυφή του αρχείου μου,
ανάκληση, έχω CS50.h.

42
00:02:09,419 --> 00:02:11,080
Έχω πρότυπο io.h.

43
00:02:11,080 --> 00:02:14,500
Αλλά τελικά, και το ξέρω από
διαβάζοντας την τεκμηρίωση, ότι χρειάζομαι

44
00:02:14,500 --> 00:02:18,320
ένα τρίτο αρχείο κεφαλίδας αν, πράγματι,
θέλετε να χρησιμοποιήσετε τη λειτουργία strlen.

45
00:02:18,320 --> 00:02:22,760
Η λειτουργία αυτή έχει δηλωθεί στο string.h.

46
00:02:22,760 --> 00:02:25,230
>> Ας το αποθηκεύσετε,
μεταγλώττιση, και να τρέξει.

47
00:02:25,230 --> 00:02:32,360

48
00:02:32,360 --> 00:02:35,570
Και αυτή τη φορά, το κάνουμε όχι μόνο
δείτε κάθε ένα από τα επιχειρήματα.

49
00:02:35,570 --> 00:02:40,470
Εμείς αντί να δούμε κάθε ένα από τα επιχειρήματα
ένα χαρακτήρα τη φορά.

50
00:02:40,470 --> 00:02:43,165