1 00:00:00,000 --> 00:00:00,620 2 00:00:00,620 --> 00:00:03,140 >> DAVID J. MALAN: La oss skrive et program som ber brukeren om en streng og 3 00:00:03,140 --> 00:00:07,210 deretter fortsette å skrive strengen tegn for tegn per linje. 4 00:00:07,210 --> 00:00:10,570 Nå i det siste, ville vi ha gjort det sannsynligvis med hakeparentes notasjon, 5 00:00:10,570 --> 00:00:13,680 effektivt behandle en streng er en rekke tegn. 6 00:00:13,680 --> 00:00:17,200 >> Men denne gangen, la oss i stedet behandle en streng for hva det egentlig er, en 7 00:00:17,200 --> 00:00:18,770 pekeren eller en adresse. 8 00:00:18,770 --> 00:00:22,420 Nærmere bestemt, adressen til en karakter, egentlig adressen til 9 00:00:22,420 --> 00:00:25,740 første tegnet, på en sekvens av tegn på at vi kollektivt vet 10 00:00:25,740 --> 00:00:26,860 som en streng. 11 00:00:26,860 --> 00:00:30,740 >> La oss først erklære en streng for hva det egentlig er, char *. 12 00:00:30,740 --> 00:00:31,770 Og vi vil kalle det er. 13 00:00:31,770 --> 00:00:34,670 Og dermed tilegne den avkastningen Verdien av get streng. 14 00:00:34,670 --> 00:00:36,380 >> La oss neste gjøre noen feilsjekking. 15 00:00:36,380 --> 00:00:42,920 Hvis s er null, la oss umiddelbart tilbake slik at vi ikke tilfeldigvis 16 00:00:42,920 --> 00:00:45,630 deferanseoperasjon at nullpeker. 17 00:00:45,630 --> 00:00:49,750 >> Neste, la oss iterere over tegn i s som følger. 18 00:00:49,750 --> 00:00:52,390 For int, får jeg 0. 19 00:00:52,390 --> 00:00:55,890 n er lik strengen lengden på s. 20 00:00:55,890 --> 00:00:58,050 Gjør dette så lenge jeg er mindre enn n. 21 00:00:58,050 --> 00:01:00,690 Og på hver iterasjon, øke jeg. 22 00:01:00,690 --> 00:01:02,710 >> Og hva gjør vi ønsker å gjøre på hver iterasjon? 23 00:01:02,710 --> 00:01:06,180 La oss nå skrive ut på hver iterasjon et enkelt tegn 24 00:01:06,180 --> 00:01:07,910 etterfulgt av en ny linje. 25 00:01:07,910 --> 00:01:10,010 Vel, hva karakter gjør vi ønsker å skrive ut? 26 00:01:10,010 --> 00:01:16,850 Jeg foreslår at vi går til adressen som er lik summen av s pluss jeg. 27 00:01:16,850 --> 00:01:18,390 >> Nå, hvorfor det uttrykket? 28 00:01:18,390 --> 00:01:22,130 Vel, husker at lagret i s er det adressen til det første tegnet 29 00:01:22,130 --> 00:01:23,490 i vår strengen, s. 30 00:01:23,490 --> 00:01:27,470 I mellomtiden, jeg blir økes på hver iterasjon, slik at den starter på 0, 31 00:01:27,470 --> 00:01:29,590 deretter går til en, går deretter til to. 32 00:01:29,590 --> 00:01:33,870 >> Så med andre ord, s pluss jeg effektivt representerer adressen 33 00:01:33,870 --> 00:01:35,990 i-te karakter i s. 34 00:01:35,990 --> 00:01:40,830 Så hvis vi går til denne adressen ved hjelp av den * operatør, vil vi gå til 35 00:01:40,830 --> 00:01:42,650 i-ende tegn i strengen. 36 00:01:42,650 --> 00:01:45,700 Og det er den verdien som vil være byttet ut med vår plassholder, 37 00:01:45,700 --> 00:01:46,840 prosent C. 38 00:01:46,840 --> 00:01:47,840 >> La oss bekrefte så mye. 39 00:01:47,840 --> 00:01:51,720 La oss redde, kompilere, og kjøre dette programmet. 40 00:01:51,720 --> 00:01:55,990 Gjør pekere, dot slash pekere. 41 00:01:55,990 --> 00:01:58,780 Og nå skal jeg gi det en strengen som hallo. 42 00:01:58,780 --> 00:01:59,600 Enter. 43 00:01:59,600 --> 00:02:03,770 >> Og ja, jeg ser H-E-L-L-O, med hver røye på en egen linje. 44 00:02:03,770 --> 00:02:05,410