1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Pojďme se věci o krok dál, teď. 3 00:00:02,460 --> 00:00:05,450 Předpokládejme, že nemám jen chci vytisknout všechny můj program je 4 00:00:05,450 --> 00:00:06,630 argumenty příkazového řádku. 5 00:00:06,630 --> 00:00:10,490 Ale já, místo toho, chcete-li tisknout všechny jednotlivé znaky v každém 6 00:00:10,490 --> 00:00:14,060 moje argumenty příkazového řádku, jeden na vedení, tak, že po spuštění této 7 00:00:14,060 --> 00:00:17,490 Program, jsem prostě vidět proud znaky na obrazovce, která se 8 00:00:17,490 --> 00:00:20,700 souhrnně jsou z mého pořadí o argumenty příkazového řádku. 9 00:00:20,700 --> 00:00:21,980 >> No, jak to mohu udělat? 10 00:00:21,980 --> 00:00:26,540 Můžu mít neporušený můj smyčka před rokem kdy jsem iterační od i až do 11 00:00:26,540 --> 00:00:30,060 Argc, aby se integrovat přes Samotné argumenty příkazového řádku. 12 00:00:30,060 --> 00:00:34,460 Ale teď, v každé iteraci, které smyčky, musím teď iteraci každý 13 00:00:34,460 --> 00:00:38,550 znaky nebo znaky v určitém řetězci. 14 00:00:38,550 --> 00:00:40,620 Takže k tomu, že potřebuji ještě jednu smyčku. 15 00:00:40,620 --> 00:00:42,090 >> Dodejme, že. 16 00:00:42,090 --> 00:00:46,890 pro int, nazvěme to j, rovná 0. 17 00:00:46,890 --> 00:00:49,980 Teď budu muset integrovat až do délky 18 00:00:49,980 --> 00:00:52,310 Aktuální řetězec v argv. 19 00:00:52,310 --> 00:00:55,910 Takže dovolte mi, abych sám další místní proměnnou, budeme nazývat n, a nastavit 20 00:00:55,910 --> 00:01:00,120 která se rovná délce řetězce z proud argument, který se bude 21 00:01:00,120 --> 00:01:04,230 nalézt v argv držáku i středník. 22 00:01:04,230 --> 00:01:08,500 >> Dovolte mi, abych nyní přecházet od j up až n následuje 23 00:01:08,500 --> 00:01:10,400 přírůstek v každém opakování. 24 00:01:10,400 --> 00:01:13,850 Pojďme se nyní vytisknout jednotlivce znaky na obrazovce. 25 00:01:13,850 --> 00:01:21,920 Printf% c tentokrát následoval nový linka, v blízkosti citace, čárka, a teď jsem 26 00:01:21,920 --> 00:01:25,565 Potřebujete j-tého znaku v argumentu i-tého. 27 00:01:25,565 --> 00:01:30,240 >> Tak, aby se na to, že mohu jednoduše specifikovat ARV držák i pro 28 00:01:30,240 --> 00:01:32,050 ten argument, i-tý. 29 00:01:32,050 --> 00:01:36,140 A pak jsem se ponořit do jedné úrovni hlubší a to sekundární index 30 00:01:36,140 --> 00:01:40,420 držák j, zavřít závorka, středník, Save. 31 00:01:40,420 --> 00:01:43,610 A pojďme teď sestavit a spustit tento program. 32 00:01:43,610 --> 00:01:46,630 >> Ujistěte se ARGV2 - 33 00:01:46,630 --> 00:01:48,440 není přesně to, co jsem očekával. 34 00:01:48,440 --> 00:01:50,740 Pojďme se posunout do první z těchto chybových zpráv. 35 00:01:50,740 --> 00:01:54,540 A v červené barvě tady vidíme chyby, implicitně deklarovat funkce knihovny 36 00:01:54,540 --> 00:01:56,290 strlen s typem - 37 00:01:56,290 --> 00:01:57,380 oh, počkej. 38 00:01:57,380 --> 00:02:00,340 To je poprvé, co jsem použil strlen, a já netušil, 39 00:02:00,340 --> 00:02:04,970 chce to na první pohled, tak jsem nezahrnovala hlavičkový soubor, který prohlašuje, 40 00:02:04,970 --> 00:02:06,290 funkce délka řetězce. 41 00:02:06,290 --> 00:02:09,419 >> A tak v horní části mého souboru, odvolání, mám CS50.h. 42 00:02:09,419 --> 00:02:11,080 Mám standardní io.h. 43 00:02:11,080 --> 00:02:14,500 Ale ukázalo se, a vím, že to od čtení dokumentace, že musím 44 00:02:14,500 --> 00:02:18,320 soubor třetí záhlaví, jestli jsem opravdu, Chcete-li použít funkci strlen. 45 00:02:18,320 --> 00:02:22,760 Tato funkce je deklarována v string.h. 46 00:02:22,760 --> 00:02:25,230 >> Pojďme znovu uložit soubor, zkompilovat a spustit. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 A tentokrát jsme to nejen vidět každý z argumentů. 49 00:02:35,570 --> 00:02:40,470 Místo toho vidíme každý z argumentů jeden znak najednou. 50 00:02:40,470 --> 00:02:43,165