1 00:00:00,000 --> 00:00:00,440 2 00:00:00,440 --> 00:00:00,860 >> SPEAKER 1: Greit. 3 00:00:00,860 --> 00:00:03,260 Det siste programmet var litt kjedelig. 4 00:00:03,260 --> 00:00:05,510 La oss gå videre og tilpasse dette litt. 5 00:00:05,510 --> 00:00:07,710 Snarere enn å si hei verden, hvorfor ikke vi gå videre 6 00:00:07,710 --> 00:00:09,680 og si hei David? 7 00:00:09,680 --> 00:00:12,500 Vel, for å gjøre dette, kunne jeg nærme dette i et par måter. 8 00:00:12,500 --> 00:00:15,760 Jeg kan, selvsagt, bare vanskelig kode David, men det er ikke alt som 9 00:00:15,760 --> 00:00:17,650 fundamentalt annerledes fra siste versjon. 10 00:00:17,650 --> 00:00:21,430 Så la oss ta et sprang fremover, angre at endre, og i stedet sette inn en ny 11 00:00:21,430 --> 00:00:23,980 kodelinje der linjen fem en gang var. 12 00:00:23,980 --> 00:00:28,970 >> Konkret hva jeg skal gjøre her er å legge i string navn, og dermed 13 00:00:28,970 --> 00:00:30,920 erklære en variabel. 14 00:00:30,920 --> 00:00:34,240 Legg merke til at i C, ikke bare har du for å gi en variabel et navn, noe som i 15 00:00:34,240 --> 00:00:38,110 dette tilfellet er navnet, har du også å spesifisere hvilken type det er. 16 00:00:38,110 --> 00:00:41,970 Vi får se andre typer før lenge, blant dem heltall og flyttall 17 00:00:41,970 --> 00:00:46,480 verdier og mer, men for nå, streng er bare et ord eller en setning, mer 18 00:00:46,480 --> 00:00:49,340 Imidlertid har en sekvens av null eller flere tegn. 19 00:00:49,340 --> 00:00:53,760 Så i øyeblikket, er denne linjen fem sa: Gi meg en variabel kalt navn 20 00:00:53,760 --> 00:00:56,560 med datatype er streng. 21 00:00:56,560 --> 00:01:00,460 >> Nå ønsker jeg å lagre en verdi i det, og å gjøre det i C, vi bruker den lik 22 00:01:00,460 --> 00:01:03,030 logg, også kjent som den oppdrag operatør. 23 00:01:03,030 --> 00:01:04,860 Så jeg kommer til å fortsette som følger. 24 00:01:04,860 --> 00:01:10,220 Lik sitat, unquote, D-A-V-I-D, lukket sitat, semikolon. 25 00:01:10,220 --> 00:01:15,595 Nettoeffekten på linje fem er nå til erklære en streng, D-A-V-I-D, lagre 26 00:01:15,595 --> 00:01:19,480 det fra høyre side av denne uttrykk i variabelen på 27 00:01:19,480 --> 00:01:21,480 venstre side av dette uttrykket. 28 00:01:21,480 --> 00:01:25,970 Så ved slutten av denne linjen, har vi D-A-V-I-D som er lagret inne i en variabel 29 00:01:25,970 --> 00:01:27,450 kalt navn. 30 00:01:27,450 --> 00:01:28,910 >> Nå la oss bruke denne variabelen. 31 00:01:28,910 --> 00:01:35,010 På linje seks, kommer jeg til å erstatte verden med en plassholder. 32 00:01:35,010 --> 00:01:39,960 % S er definert i henhold til dokumentasjon for printf som en 33 00:01:39,960 --> 00:01:41,690 plassholder for en streng. 34 00:01:41,690 --> 00:01:44,620 Med andre ord, det er en måte å informere printf at jeg kommer til å sette 35 00:01:44,620 --> 00:01:47,930 en annen verdi her, men la meg fortelle deg om en liten stund hva 36 00:01:47,930 --> 00:01:49,180 det kommer til å bli. 37 00:01:49,180 --> 00:01:52,800 Nå, hvordan kan jeg fortsette å fortelle printf hva denne verdien kommer til å bli? 38 00:01:52,800 --> 00:01:56,850 >> Vel, trenger jeg å gi printf med en andre argumentet, og for å gjøre det, jeg 39 00:01:56,850 --> 00:02:00,460 trenger å sette et komma etter den første slike argument, som ble dette sitert 40 00:02:00,460 --> 00:02:04,990 streng, og da trenger jeg å spesifisere hva verdien jeg ønsker å plugge inn i den 41 00:02:04,990 --> 00:02:07,010 første argumentet er plassholder. 42 00:02:07,010 --> 00:02:10,880 Så navnet på min variabelen er, av kurs, navn, så det er nok å skrive 43 00:02:10,880 --> 00:02:14,000 "Name" som det andre argument for å printf. 44 00:02:14,000 --> 00:02:15,070 Nå trenger ikke bli villedet. 45 00:02:15,070 --> 00:02:20,440 Selv om det er et komma innvendig den angitte strengen, er at faktisk 46 00:02:20,440 --> 00:02:24,370 på innsiden av strengen slik at det ikke skille ett argument fra en annen. 47 00:02:24,370 --> 00:02:28,740 Bare denne komma som er utenfor det sitert streng faktisk skiller 48 00:02:28,740 --> 00:02:31,700 printf første argument fra sitt andre argument. 49 00:02:31,700 --> 00:02:34,270 >> La oss nå kompilere dette programmet. 50 00:02:34,270 --> 00:02:36,500 Gjør hallo ett. 51 00:02:36,500 --> 00:02:39,570 Oh my goodness, fem feil som genereres, og min programmets 52 00:02:39,570 --> 00:02:41,100 bare syv linjer lang. 53 00:02:41,100 --> 00:02:44,720 Vel, som alltid, ikke se på den siste av feil på skjermen din. 54 00:02:44,720 --> 00:02:47,960 Se på den aller første fordi kanskje Det er en brusende effekt, hvorved 55 00:02:47,960 --> 00:02:51,600 bare én feil opp topp skapte Utseendet til flere feil enn det 56 00:02:51,600 --> 00:02:52,570 faktisk er. 57 00:02:52,570 --> 00:02:56,620 >> Så la meg bla opp, og den første slike boldfaced feil her er bruk av 58 00:02:56,620 --> 00:02:59,140 undeclared identifikator streng. 59 00:02:59,140 --> 00:03:00,630 Mente du standard i? 60 00:03:00,630 --> 00:03:01,990 Vel nei, det gjorde jeg ikke. 61 00:03:01,990 --> 00:03:06,700 Jeg mente streng, men det viser seg at jeg glemte at strengen ikke eksisterer som en 62 00:03:06,700 --> 00:03:10,830 data skriver teknisk i C. Konseptuelt den finnes, men ordet 63 00:03:10,830 --> 00:03:16,210 "Streng" bare eksisterer fordi den CS50 ansatte har erklært det, så å si, 64 00:03:16,210 --> 00:03:18,160 i en fil som vi selv skrev. 65 00:03:18,160 --> 00:03:22,540 Faktisk, akkurat som noen for lenge siden erklærte printf-funksjonen i en fil 66 00:03:22,540 --> 00:03:28,310 heter Standard IO.H, så gjorde vi det ansatte erklære streng som en datatype i 67 00:03:28,310 --> 00:03:32,470 en fil som, ikke overraskende, kalles CS50.H. 68 00:03:32,470 --> 00:03:36,340 >> Så la oss gå tilbake til toppen av min programmere og informere kompilatoren som 69 00:03:36,340 --> 00:03:40,130 Ikke bare ønsker jeg å bruke symbolet streng, jeg ønsker også å utdanne 70 00:03:40,130 --> 00:03:42,160 kompilatoren på hva det symbolet betyr. 71 00:03:42,160 --> 00:03:47,010 Og for å gjøre det ganske enkelt, kan jeg gå tilbake opp til linje en, sette inn en ny linje 72 00:03:47,010 --> 00:03:54,070 her, og legge til, "inkluderer CS50.H," også mellom vinklede parentes. 73 00:03:54,070 --> 00:03:58,170 Dette instruksjon, mye sånt nå på linje to, kommer til å informere 74 00:03:58,170 --> 00:04:02,460 kompilator som det skal omfatte Innholdet i CS50.H uansett hvor de er 75 00:04:02,460 --> 00:04:06,620 i harddisken min innsiden av mitt program, dermed utdanne kompilatoren som til 76 00:04:06,620 --> 00:04:09,050 hva som menes med streng. 77 00:04:09,050 --> 00:04:13,420 >> La oss rekompilere programmet mitt etter å lagre endringene. 78 00:04:13,420 --> 00:04:15,500 Gjør hallo ett. 79 00:04:15,500 --> 00:04:16,440 Enter. 80 00:04:16,440 --> 00:04:17,730 Mye bedre. 81 00:04:17,730 --> 00:04:23,760 Nå har jeg en blinkende melding ved som jeg kan skrive ". / hallo ett", og voila. 82 00:04:23,760 --> 00:04:25,010 Hei David. 83 00:04:25,010 --> 00:04:26,402