1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Oglejmo stvari en korak naprej, zdaj. 3 00:00:02,460 --> 00:00:05,450 Recimo, da ne bom samo želim, natisniti vse moj program je 4 00:00:05,450 --> 00:00:06,630 Argumenti linija poveljevanja. 5 00:00:06,630 --> 00:00:10,490 Ampak sem namesto tega želite natisniti vse posameznih znakov v vsaki 6 00:00:10,490 --> 00:00:14,060 moji argumenti v ukazni vrstici, eno na linijo, tako da teče po tem 7 00:00:14,060 --> 00:00:17,490 Program, sem preprosto vidim tok Znaki na zaslonu, da 8 00:00:17,490 --> 00:00:20,700 skupaj so iz mojega zaporedju argumentov ukazno vrstico. 9 00:00:20,700 --> 00:00:21,980 >> Torej, kako lahko to storim? 10 00:00:21,980 --> 00:00:26,540 Ne morem pustiti nespremenjene moje zanke od prej pri čemer sem iterativni od i do 11 00:00:26,540 --> 00:00:30,060 ARGC za vključevanje preko argumenti v ukazni vrstici sami. 12 00:00:30,060 --> 00:00:34,460 Toda zdaj, v vsaki ponovitvi, ki zanke, da moram zdaj Ponovil nad vsakim 13 00:00:34,460 --> 00:00:38,550 znakov ali znakov v določenem nizu. 14 00:00:38,550 --> 00:00:40,620 Torej za to, rabim še eno zanko. 15 00:00:40,620 --> 00:00:42,090 >> Dodajmo še, da je. 16 00:00:42,090 --> 00:00:46,890 za notr, recimo ji j, enaka 0.. 17 00:00:46,890 --> 00:00:49,980 Zdaj bom morala vključiti do dolžine 18 00:00:49,980 --> 00:00:52,310 Sedanji niz v ARGV. 19 00:00:52,310 --> 00:00:55,910 Naj dam še en lokalni spremenljivka, ga bomo poklical n in nastavite 20 00:00:55,910 --> 00:01:00,120 ki je enaka dolžini niza Trenutna argument, ki se bo 21 00:01:00,120 --> 00:01:04,230 najdemo v argv nosilec i podpičjem. 22 00:01:04,230 --> 00:01:08,500 >> Dovolite mi, da zdaj Ponovil od j up dokler n sledi 23 00:01:08,500 --> 00:01:10,400 prirastek na vsaki ponovitvi. 24 00:01:10,400 --> 00:01:13,850 Pojdimo zdaj natisnete posameznika Znaki na zaslonu. 25 00:01:13,850 --> 00:01:21,920 Printf% c tokrat sledila nova linijo, blizu citiram, vejica, in zdaj sem 26 00:01:21,920 --> 00:01:25,565 Potrebujemo j-znak v argumentu i-ti. 27 00:01:25,565 --> 00:01:30,240 >> Tako, da se na to, da lahko preprosto določite ARV nosilec i do 28 00:01:30,240 --> 00:01:32,050 dobili argument i-tega. 29 00:01:32,050 --> 00:01:36,140 In potem sem lahko potopite v enem nivoju globlje in ne sekundarni indeks 30 00:01:36,140 --> 00:01:40,420 Nosilec j, blizu oklepaj, podpičje, Save. 31 00:01:40,420 --> 00:01:43,610 In kaj je zdaj zbrati in zagon tega programa. 32 00:01:43,610 --> 00:01:46,630 >> Naredite ARGV2 - 33 00:01:46,630 --> 00:01:48,440 niso tisto, kar sem pričakoval. 34 00:01:48,440 --> 00:01:50,740 Pojdimo se pomaknite do prvega od teh sporočil o napakah. 35 00:01:50,740 --> 00:01:54,540 In tukaj rdeča, bomo videli napake, implicitno razglasi funkcija knjižnica 36 00:01:54,540 --> 00:01:56,290 strlen s tipom - 37 00:01:56,290 --> 00:01:57,380 oh, počakaj malo. 38 00:01:57,380 --> 00:02:00,340 To je prvič, da sem se uporablja strlen, in nisem predvideti 39 00:02:00,340 --> 00:02:04,970 ga želijo na prvi, tako da ni vseboval Datoteka glava, ki izjavlja 40 00:02:04,970 --> 00:02:06,290 Funkcija dolžina niza. 41 00:02:06,290 --> 00:02:09,419 >> Tako da na vrhu moje datoteke, odpoklic, imam CS50.h. 42 00:02:09,419 --> 00:02:11,080 Imam standardni io.h. 43 00:02:11,080 --> 00:02:14,500 Ampak se je izkazalo, in to vem iz branjem dokumentacije, da moram 44 00:02:14,500 --> 00:02:18,320 tretja glava datoteke, če sem v resnici, želite uporabljati funkcijo strlen. 45 00:02:18,320 --> 00:02:22,760 Ta funkcija je bila prijavljena na string.h. 46 00:02:22,760 --> 00:02:25,230 >> Oglejmo shranili datoteko, zbere in teče. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 In tokrat ne bomo samo glej vsakega od argumentov. 49 00:02:35,570 --> 00:02:40,470 Mi namesto videla od argumentov en znak naenkrat. 50 00:02:40,470 --> 00:02:43,165