1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Laten we dingen een stap verder, nu. 3 00:00:02,460 --> 00:00:05,450 Stel dat ik niet alleen maar willen al mijn programma afdrukken 4 00:00:05,450 --> 00:00:06,630 command line argumenten. 5 00:00:06,630 --> 00:00:10,490 Maar ik, in plaats daarvan, willen al het afdrukken afzonderlijke tekens in elk van 6 00:00:10,490 --> 00:00:14,060 mijn commandoregel argumenten, een per lijn, zodat bij het uitvoeren van dit 7 00:00:14,060 --> 00:00:17,490 programma, ik zie gewoon een stroom van tekens op het scherm dat 8 00:00:17,490 --> 00:00:20,700 collectief zijn van mijn sequence van command line argumenten. 9 00:00:20,700 --> 00:00:21,980 >> Nou ja, hoe kan ik dit doen? 10 00:00:21,980 --> 00:00:26,540 Ik kan intact mijn lus van voor waarbij ik iteratieve van i tot 11 00:00:26,540 --> 00:00:30,060 ARGC om te integreren in de command line argumenten zelf. 12 00:00:30,060 --> 00:00:34,460 Maar nu, binnen elke herhaling van dat loop, moet ik nu itereren over elk 13 00:00:34,460 --> 00:00:38,550 van de tekens of chars in een bepaalde tekenreeks. 14 00:00:38,550 --> 00:00:40,620 Dus om dat te doen, ik moet nog een lus. 15 00:00:40,620 --> 00:00:42,090 >> Laten we toevoegen dat. 16 00:00:42,090 --> 00:00:46,890 voor int, noem het j, gelijk is aan 0. 17 00:00:46,890 --> 00:00:49,980 Nu ga ik moeten integreren tot de lengte van de 18 00:00:49,980 --> 00:00:52,310 huidige tekenreeks in ARGV. 19 00:00:52,310 --> 00:00:55,910 Dus ik geef mezelf een andere lokale variabele, zullen we het n noemen, en stel 20 00:00:55,910 --> 00:01:00,120 die gelijk is aan de lengte van de tekenreeks huidige argument, dat zal worden 21 00:01:00,120 --> 00:01:04,230 gevonden in ARGV beugel i puntkomma. 22 00:01:04,230 --> 00:01:08,500 >> Laat ik nu herhalen van j up tot n gevolgd door een 23 00:01:08,500 --> 00:01:10,400 increment op elke iteratie. 24 00:01:10,400 --> 00:01:13,850 Laten we nu het individu af te drukken tekens op het scherm. 25 00:01:13,850 --> 00:01:21,920 Printf% c ditmaal gevolgd door een nieuw lijn, dicht citaat, komma, en nu heb ik 26 00:01:21,920 --> 00:01:25,565 moet de j-de karakter in de i-de argument. 27 00:01:25,565 --> 00:01:30,240 >> Dus op dat te krijgen, kan ik gewoon specificeren ARV beugel i te 28 00:01:30,240 --> 00:01:32,050 krijgen de i-de argument. 29 00:01:32,050 --> 00:01:36,140 En dan kan ik duiken in een niveau dieper en doe een secundaire index van 30 00:01:36,140 --> 00:01:40,420 beugel j, haakje sluiten, puntkomma, Opslaan. 31 00:01:40,420 --> 00:01:43,610 En laten we nu samen te stellen en Dit programma starten. 32 00:01:43,610 --> 00:01:46,630 >> Maak ARGV2 - 33 00:01:46,630 --> 00:01:48,440 niet helemaal wat ik had verwacht. 34 00:01:48,440 --> 00:01:50,740 Laten we omhoog naar de eerste van deze foutmeldingen. 35 00:01:50,740 --> 00:01:54,540 En hier rood, zien we fout, impliciet verklaren bibliotheekfunctie 36 00:01:54,540 --> 00:01:56,290 strlen met type - 37 00:01:56,290 --> 00:01:57,380 oh, wacht even. 38 00:01:57,380 --> 00:02:00,340 Dit is de eerste keer dat ik heb gebruikt strlen, en ik wilde niet vooruitlopen 39 00:02:00,340 --> 00:02:04,970 willen het op het eerste, dus ik heb niet bevatten de header-bestand dat verklaart 40 00:02:04,970 --> 00:02:06,290 een string lengte functie. 41 00:02:06,290 --> 00:02:09,419 >> Dus op de top van mijn dossier, recall, ik heb CS50.h. 42 00:02:09,419 --> 00:02:11,080 Ik heb standaard io.h. 43 00:02:11,080 --> 00:02:14,500 Maar het blijkt, en ik weet dat dit uit het lezen van de documentatie, die ik nodig heb 44 00:02:14,500 --> 00:02:18,320 een derde header-bestand als ik, inderdaad, willen de strlen functie te gebruiken. 45 00:02:18,320 --> 00:02:22,760 Die functie wordt gedeclareerd in string.h. 46 00:02:22,760 --> 00:02:25,230 >> Laten we het bestand opslaan, compileren en uit te voeren. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 En deze keer, we doen niet alleen zie elk van de argumenten. 49 00:02:35,570 --> 00:02:40,470 We zien elkaar in plaats van de argumenten een karakter per keer. 50 00:02:40,470 --> 00:02:43,165