1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. MALAN: Kirjoitetaan ohjelma että kysyy käyttäjältä merkkijonon ja 3 00:00:03,140 --> 00:00:07,210 siirry sitten tulostaa merkkijonon merkin merkki yksi riviä kohden. 4 00:00:07,210 --> 00:00:10,570 Nyt aikaisemmin, olisimme tehneet niin luultavasti hakasulkeen merkitsemistavassa 5 00:00:10,570 --> 00:00:13,680 hoitamiseksi tehokkaasti merkkijono on joukko merkkiä. 6 00:00:13,680 --> 00:00:17,200 >> Mutta tällä kertaa, nyt sen sijaan hoitoon merkkijono, mitä se todella on, 7 00:00:17,200 --> 00:00:18,770 osoitin tai osoite. 8 00:00:18,770 --> 00:00:22,420 Tarkemmin sanottuna osoitteen merkki, todella osoitteen 9 00:00:22,420 --> 00:00:25,740 Ensimmäinen merkki, sekvenssissä merkkejä, että me yhdessä tiedämme 10 00:00:25,740 --> 00:00:26,860 jonona. 11 00:00:26,860 --> 00:00:30,740 >> Katsotaanpa ensin ilmoitettava merkkijono mitä se todella on, char *. 12 00:00:30,740 --> 00:00:31,770 Ja me kutsumme sitä s. 13 00:00:31,770 --> 00:00:34,670 Ja sitten määrittää sen tuotto arvo get merkkijono. 14 00:00:34,670 --> 00:00:36,380 >> Katsotaanpa seuraavaksi tehdä joitakin virheentarkistus. 15 00:00:36,380 --> 00:00:42,920 Jos s on nolla, nyt välittömästi palautettava jotta emme vahingossa 16 00:00:42,920 --> 00:00:45,630 dereference että nollaosoittimen. 17 00:00:45,630 --> 00:00:49,750 >> Seuraava, nyt kerrata yli merkkiä s seuraavasti. 18 00:00:49,750 --> 00:00:52,390 Int, i saa 0. 19 00:00:52,390 --> 00:00:55,890 n on merkkijonon pituus s. 20 00:00:55,890 --> 00:00:58,050 Tee tämä niin kauan kuin i on pienempi kuin n. 21 00:00:58,050 --> 00:01:00,690 Ja jokaisen iteraation, kasvattaa i. 22 00:01:00,690 --> 00:01:02,710 >> Ja mitä haluamme tehdä jokaisen iteraation? 23 00:01:02,710 --> 00:01:06,180 Katsotaanpa nyt tulostaa kunkin iteraation yhden merkin 24 00:01:06,180 --> 00:01:07,910 jonka jälkeen uusi rivi. 25 00:01:07,910 --> 00:01:10,010 No, mitä hahmo tehdä haluamme tulostaa? 26 00:01:10,010 --> 00:01:16,850 Ehdotan, että menemme osoitteeseen joka on yhtä suuri summa s plus i. 27 00:01:16,850 --> 00:01:18,390 >> Nyt, miksi tätä ilmaisua? 28 00:01:18,390 --> 00:01:22,130 No, muistaa, että tallennetut s on osoitteen ensimmäisen merkin 29 00:01:22,130 --> 00:01:23,490 meidän string, s. 30 00:01:23,490 --> 00:01:27,470 Samalla olen ollaan kasvatetaan päälle jokaisen iteraation siten, että se alkaa 0, 31 00:01:27,470 --> 00:01:29,590 sitten menee 1, sitten menee 2. 32 00:01:29,590 --> 00:01:33,870 >> Eli toisin sanoen, s plus i tehokkaasti edustaa osoitteen 33 00:01:33,870 --> 00:01:35,990 i: nnen merkin s. 34 00:01:35,990 --> 00:01:40,830 Joten jos menemme tähän osoitteeseen tapa * toimija, me olla menossa 35 00:01:40,830 --> 00:01:42,650 i: nnen merkin merkkijono. 36 00:01:42,650 --> 00:01:45,700 Ja se arvo, joka on korvata meidän paikanvaraajassa 37 00:01:45,700 --> 00:01:46,840 prosenttia C. 38 00:01:46,840 --> 00:01:47,840 >> Katsotaanpa vahvistaisivat mahdollisimman paljon. 39 00:01:47,840 --> 00:01:51,720 Säästetään, koota ja suorita tämä ohjelma. 40 00:01:51,720 --> 00:01:55,990 Tee osoittimet, piste slash viitteitä. 41 00:01:55,990 --> 00:01:58,780 Ja nyt minä annan sen merkkijono kuten hei. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> Ja todellakin, näen H-E-L-L-O, jossa jokainen char omalla rivillään. 44 00:02:03,770 --> 00:02:05,410