>> SPEAKER 1: Okej.
Det sista programmet var lite tråkigt.
Låt oss gå vidare och anpassa detta lite.
I stället för att säga hej världen, varför vi inte gå vidare
och säga, hej David?
Jo, för att göra detta, skulle jag närma detta på ett par olika sätt.
Jag kunde naturligtvis bara hårt kod David, men det är inte allt som
fundamentalt olika från den senaste versionen.
Så låt oss ta ett steg framåt, ångra att förändras, och i stället sätta in en ny
kodrad där linje fem en gång var.
>> Närmare bestämt vad jag ska göra här är att lägga in strängnamn och därigenom
förklara en variabel.
Lägg märke till att i C, inte bara du har för att ge en variabel ett namn, som i
detta fall är namn, du har också att ange vilken typ det är.
Vi får se andra typer inom kort, bland dem heltal och flyttal
värderingar och mer, men för nu, sträng är bara ett ord eller en fras, mer
formellt, en sekvens av noll eller flera tecken.
Så för tillfället är denna linje fem ordstäv, ge mig en variabel som heter namn
vars datatyp är sträng.
>> Nu vill jag att lagra ett värde i det, och att göra det i C använder vi lika
underteckna, annars känd som den tilldelningsoperator.
Så jag kommer att fortsätta så här.
Lika med citationstecken, unquote, D-A-V-I-D, stängt citat, semikolon.
Nettoeffekten i linje fem är nu att förklara en sträng, D-A-V-I-D, lagrar
det från den högra sidan av denna uttryck i variabeln på
vänstra sidan av detta uttryck.
Så i slutet av denna linje, vi har D-A-V-I-D lagras inuti en variabel
heter namn.
>> Nu låt oss använda denna variabel.
På rad sex, kommer jag att byta ut värld med en platshållare.
% S definieras enligt dokumentation för printf som en
platshållare för en sträng.
Med andra ord, det är ett sätt att informera printf att jag ska sätta
något annat värde här, men låt mig berätta på bara ett ögonblick vad
det kommer att bli.
Nu, hur gör jag för att berätta printf vad det värdet kommer att bli?
>> Tja, behöver jag för att ge printf med en andra argumentet, och att göra det, jag
måste sätta ett kommatecken efter den första argument, som var här citerade
sträng, och då måste jag ange vad värde jag vill koppla in det
första argumentet är platshållare.
Så namnet på min variabel är, om Naturligtvis namn, så att det är tillräckligt för att skriva
"Namn" som den andra Argumentet att printf.
Nu inte vilseledas.
Även om det finns ett kommatecken inuti den citerade strängen, är det verkligen
insidan av strängen så att den inte separera ett argument från en annan.
Endast denna kommatecken som är utanför det citerade strängen faktiskt separerar
printf första argument från sitt andra argument.
>> Låt oss nu kompilera programmet.
Gör hej en.
Åh herregud, femte fel som genereras, och min programmets
bara sju rader lång.
Tja, som alltid, inte titta på det sista av felen på skärmen.
Titta på den allra första eftersom kanske det finns en kaskadeffekt som innebär att
bara ett fel upp topp skapade uppkomsten av fler fel än det
egentligen är.
>> Så låt mig rulla uppåt, och den första boldfaced fel här är användningen av
odeklarerat identifieringssträng.
Menade du standard?
Nå nej, det gjorde jag inte.
Jag menar sträng, men det visade sig att jag glömde att strängen finns inte som en
skriver uppgifter tekniskt i C. Konceptuellt den finns, men ordet
"Sträng" bara existerar därför att CS50 Personalen har förklarat det, så att säga,
i en fil som vi själva skrivit.
I själva verket, precis som någon för länge sedan förklarade printf funktion i en fil
heter Standard IO.H, så gjorde vi det Personalen förklarar sträng som en datatyp i
en fil som, ingen överraskning, kallas CS50.H.
>> Så låt oss gå tillbaka till toppen av min programmera och informera kompilatorn att
inte nog med att jag vill använda symbolen sträng, vill jag också att utbilda
kompilator på vad den symbolen betyder.
Och för att göra det helt enkelt, kan jag gå tillbaka upp till rad ett, infoga en ny rad
här, och lägga till, "inkluderar CS50.H," även mellan vinklade konsoler.
Denna anvisning, ungefär som det nu på rad två, kommer att informera
kompilator att den bör omfatta Innehållet i CS50.H varhelst de är
i min hårddisk inne i mitt program, därmed utbilda kompilatorn att
vad som menas med sträng.
>> Låt oss kompilera mitt program efter att spara ändringarna.
Gör hej en.
Enter.
Mycket bättre.
Nu har jag en blinkande prompt där jag kan skriva, ". / hello en," och voila.
Hej David.