>> DAVID J. MALAN: Låt oss ta saker ett steg längre, nu.
Antag att jag inte bara vill för att skriva ut alla mina programmets
kommandoradsargument.
Men jag istället vill skriva ut alla enskilda tecken i varje
mina kommandoradsargument, ett per linje, så att när du kör det här
program, jag ser bara en ström av Tecknen på skärmen som
kollektivt är från min sekvens av kommandoradsargument.
>> Tja, hur kan jag göra detta?
Jag kan hålla intakt min slinga från tidigare varvid jag iterativ från i upp till
ARGC för att integrera över kommandoradsargument själva.
Men nu, i varje iteration av att slinga, jag behöver nu iterera över varje
av tecken eller tecken i en specifik sträng.
Så för att göra det, jag behöver en till ögla.
>> Låt oss lägga det.
för int, låt oss kalla det j, lika med 0.
Nu kommer jag att behöva integrera fram till längden av den
aktuell sträng i argv.
Så låt mig ge mig en annan lokal variabel, vi kallar det n, och ange
som är lika med den stränglängd av aktuella argument, som kommer att bli
finns i argv fäste jag semikolon.
>> Låt mig nu iterera från j upp tills n följt av en
inkrementera på varje iteration.
Låt oss nu skriva ut enskilda tecken på skärmen.
Printf% c denna gång följt av en ny linje, nära citationstecken, kommatecken, och nu har jag
behöver den j: te tecken i den i: te argumentet.
>> Så för att komma åt det, jag kan helt enkelt ange ARV fäste i till
få den i: te argumentet.
Och då kan jag dyka i en nivå djupare och göra ett sekundärt index för
fäste j, nära parentes, semikolon, Spara.
Och låt oss nu sammanställa och köra programmet.
>> Gör ARGV2 -
inte riktigt vad jag hade förväntat mig.
Låt oss bläddra fram till den första av dessa felmeddelanden.
Och i rött här, ser vi fel, implicit förklara biblioteksfunktion
strlen med typ -
åh, vänta lite.
Detta är första gången jag har använt strlen, och jag inte förutsåg
vill ha det först, så jag tog inte med rubrikfilen som förklarar
en längd funktion sträng.
>> Så på toppen av min fil, minns, jag har CS50.h.
Jag har standard io.h.
Men det visar sig, och jag vet detta från läsa dokumentationen, att jag behöver
en tredje header-fil om jag, faktiskt, vill använda strlen funktion.
Den funktionen deklareras i string.h.
>> Låt oss spara om filen, kompilera och köra.
Och den här gången, vi gör inte bara se var och en av argumenten.
Vi ser i stället var och en av de argument ett tecken i taget.