1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. Malan: Poďme napísať program, ktoré vyzve užívateľa na zadanie reťazca a 3 00:00:03,140 --> 00:00:07,210 potom pokračovať vytlačiť tento reťazec znak pre znak na každom riadku jeden. 4 00:00:07,210 --> 00:00:10,570 Teraz v minulosti, by sme to urobili tak, Pravdepodobne sa štvorcovým držiakom notáciu, 5 00:00:10,570 --> 00:00:13,680 efektívnu liečbu reťazec je pole znakov. 6 00:00:13,680 --> 00:00:17,200 >> Ale tentoraz, poďme miesto liečbe reťazec na to, čo skutočne je, 7 00:00:17,200 --> 00:00:18,770 ukazovateľ alebo adresu. 8 00:00:18,770 --> 00:00:22,420 Konkrétne, adresa charakter, naozaj adresa 9 00:00:22,420 --> 00:00:25,740 prvý znak, v poradí znaky, ktoré sme spoločne poznáme 10 00:00:25,740 --> 00:00:26,860 ako reťazec. 11 00:00:26,860 --> 00:00:30,740 >> Poďme najprv deklarovať reťazec pre čo to vlastne je, char *. 12 00:00:30,740 --> 00:00:31,770 A budeme hovoriť to je. 13 00:00:31,770 --> 00:00:34,670 A potom mu priradiť návrat hodnota get reťazca. 14 00:00:34,670 --> 00:00:36,380 >> Poďme si urobiť nejaké ďalšie kontrolu chýb. 15 00:00:36,380 --> 00:00:42,920 Ak je null, poďme sa okamžite vráti tak, že my nie náhodou 16 00:00:42,920 --> 00:00:45,630 dereferencia, že nulový ukazovateľ. 17 00:00:45,630 --> 00:00:49,750 >> Ďalšie, poďme iterácii znaky s takto. 18 00:00:49,750 --> 00:00:52,390 Pre int, aj dostane 0. 19 00:00:52,390 --> 00:00:55,890 n sa rovná dĺžka reťazca s 20 00:00:55,890 --> 00:00:58,050 Urob to tak dlho, kým aj je menšie ako n. 21 00:00:58,050 --> 00:01:00,690 A v každej iterácii, zvýšiť i 22 00:01:00,690 --> 00:01:02,710 >> A to, čo chceme robiť na každej iterácii? 23 00:01:02,710 --> 00:01:06,180 Poďme sa teraz tlačiť na každej iterácii jeden znak 24 00:01:06,180 --> 00:01:07,910 nasleduje nový riadok. 25 00:01:07,910 --> 00:01:10,010 No, čo postava robiť chceme tlačiť? 26 00:01:10,010 --> 00:01:16,850 Navrhujem, že ideme na adresu ktorá sa rovná súčtu s a i 27 00:01:16,850 --> 00:01:18,390 >> A teraz, prečo tento výraz? 28 00:01:18,390 --> 00:01:22,130 No, pripomenúť, že uložené v s je adresa prvého znaku 29 00:01:22,130 --> 00:01:23,490 v našom reťazci, s 30 00:01:23,490 --> 00:01:27,470 Medzitým som sa zvýši na každej iterácie tak, že začína v 0, 31 00:01:27,470 --> 00:01:29,590 potom ide do 1, potom ide do 2. 32 00:01:29,590 --> 00:01:33,870 >> Takže inými slovami, s navyše aj efektívne predstavuje adresu 33 00:01:33,870 --> 00:01:35,990 i-tý znak v s. 34 00:01:35,990 --> 00:01:40,830 Takže ak pôjdeme na uvedenú adresu formou operátor *, pôjdeme na 35 00:01:40,830 --> 00:01:42,650 i-tý znak v reťazci. 36 00:01:42,650 --> 00:01:45,700 A to je hodnota, ktorá bude nahradiť pre náš zástupný symbol, 37 00:01:45,700 --> 00:01:46,840 percent C. 38 00:01:46,840 --> 00:01:47,840 >> Poďme potvrdenie toľko. 39 00:01:47,840 --> 00:01:51,720 Poďme zachrániť, zostaviť, a spustiť tento program. 40 00:01:51,720 --> 00:01:55,990 Skontrolujte ukazovatele, bodka ukazovatele lomítko. 41 00:01:55,990 --> 00:01:58,780 A teraz som si to dať string ako ahoj. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> A vskutku, vidím, H-E-L-L-O, s každý char na vlastnom riadku. 44 00:02:03,770 --> 00:02:05,410