1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> David J. MALAN: Hayaan ang kumuha ng mga bagay isa pa na hakbang, na ngayon. 3 00:00:02,460 --> 00:00:05,450 Ipagpalagay na hindi ko lang gusto upang i-print ang lahat ng program na iyon ang aking 4 00:00:05,450 --> 00:00:06,630 utos argumento linya. 5 00:00:06,630 --> 00:00:10,490 Ngunit ako, sa halip, gusto upang i-print ang lahat ng mga indibidwal na mga character sa bawat isa sa 6 00:00:10,490 --> 00:00:14,060 ang aking mga argumento command line, isa sa bawat linya, kaya na sa pagtakbo ito 7 00:00:14,060 --> 00:00:17,490 programa, nakikita ko lamang ng isang stream ng mga character sa screen na 8 00:00:17,490 --> 00:00:20,700 kapag pinagsama-sama ay mula sa aking pagkakasunud-sunod ng mga argumento command line. 9 00:00:20,700 --> 00:00:21,980 >> Well, paano ko ito gagawin? 10 00:00:21,980 --> 00:00:26,540 Maaari ko bang panatilihin buo ang aking loop mula sa bago kung saan ang umuulit ko mula sa i up hanggang 11 00:00:26,540 --> 00:00:30,060 ARGC upang pagsamahin sa ibabaw ng mga argumento command line ang kanilang mga sarili. 12 00:00:30,060 --> 00:00:34,460 Ngunit ngayon, sa loob ng bawat pag-ulit ng na loop, kailangan kong ngayon umulit sa ibabaw ng bawat 13 00:00:34,460 --> 00:00:38,550 ng mga character o char sa isang tiyak na string. 14 00:00:38,550 --> 00:00:40,620 Kaya upang gawin iyon, kailangan ko ng isa pang loop. 15 00:00:40,620 --> 00:00:42,090 >> Ni idagdag na Hayaan. 16 00:00:42,090 --> 00:00:46,890 para int, sabihin tawagan ni ito j, ay katumbas ng 0. 17 00:00:46,890 --> 00:00:49,980 Ngayon pupuntahan ko kailangan upang isama ang up hanggang sa ang haba ng 18 00:00:49,980 --> 00:00:52,310 kasalukuyang string sa ARGV. 19 00:00:52,310 --> 00:00:55,910 Kaya hayaan mo akong bigyan ang aking sarili ng isa pang lokal na variable, ipapakita namin ito tumawag n, at itakda ang 20 00:00:55,910 --> 00:01:00,120 na katumbas ng haba ng string ng kasalukuyang argumento, na kung saan ay magiging 21 00:01:00,120 --> 00:01:04,230 natagpuan sa ARGV bracket semicolon i. 22 00:01:04,230 --> 00:01:08,500 >> Hayaan akong ngayon umulit mula sa j up hanggang n sundan ng isang 23 00:01:08,500 --> 00:01:10,400 dinagdagan sa bawat pag-ulit. 24 00:01:10,400 --> 00:01:13,850 Hayaan ngayong mag-print ng mga indibidwal na mga character sa screen. 25 00:01:13,850 --> 00:01:21,920 Printf% c oras na ito sinusundan ng isang bagong linya, malapit quote, kuwit, at ngayon ko 26 00:01:21,920 --> 00:01:25,565 kailangan ang j-ika ng character sa i-ika-argumento. 27 00:01:25,565 --> 00:01:30,240 >> Kaya upang makakuha ng sa na, maaari ko lamang tukuyin ARV bracket i upang 28 00:01:30,240 --> 00:01:32,050 makuha ang mga i-ika-argumento. 29 00:01:32,050 --> 00:01:36,140 At pagkatapos ay maaari kong sumisid sa isang antas ng mas malalim at gawin ang isang pangalawang index ng 30 00:01:36,140 --> 00:01:40,420 bracket j, malapit panaklong, tuldok-kuwit, I-save. 31 00:01:40,420 --> 00:01:43,610 At ngayon ni compile ipaalam at patakbuhin ang program na ito. 32 00:01:43,610 --> 00:01:46,630 >> Gawing ARGV2 - 33 00:01:46,630 --> 00:01:48,440 hindi pa kung ano ang inaasahan ko. 34 00:01:48,440 --> 00:01:50,740 Ni-scroll pataas sa unang Hayaan ng mga mensahe ng error. 35 00:01:50,740 --> 00:01:54,540 At sa pulang dito, makikita natin na error, nang kataon lamang deklarasyon ng function library 36 00:01:54,540 --> 00:01:56,290 strlen may uri - 37 00:01:56,290 --> 00:01:57,380 oh, maghintay ng isang minuto. 38 00:01:57,380 --> 00:02:00,340 Ito ang unang pagkakataon na nagamit ko strlen, at ako ay hindi inaasahan 39 00:02:00,340 --> 00:02:04,970 kinakapos ito sa una, kaya hindi ko isama ang header ng file na declares 40 00:02:04,970 --> 00:02:06,290 isang string length na function. 41 00:02:06,290 --> 00:02:09,419 >> Kaya sa tuktok ng aking mga file, pagpapabalik, mayroon akong CS50.h. 42 00:02:09,419 --> 00:02:11,080 Mayroon akong standard io.h. 43 00:02:11,080 --> 00:02:14,500 Ngunit ito ay lumiliko out, at alam ko ito mula sa pagbasa ng dokumentasyon, na kailangan ko 44 00:02:14,500 --> 00:02:18,320 isang third header ng file kung ako, sa katunayan, nais na gamitin ang strlen function. 45 00:02:18,320 --> 00:02:22,760 Function na ay ipinahayag sa string.h. 46 00:02:22,760 --> 00:02:25,230 >> Ni resave ang file Hayaan, sumulat ng libro, at tumakbo. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 At oras na ito, ginagawa namin hindi lamang tingnan ang bawat isa sa mga argumento. 49 00:02:35,570 --> 00:02:40,470 Sa halip namin makita ang bawat isa sa mga argumento isang character sa isang pagkakataon. 50 00:02:40,470 --> 00:02:43,165