>> DAVID MALAN: Antag att vi vill skriva ett program som uppmanar användaren
för en sträng och sedan aktiverar den strängen.
Nåväl, låt oss börja med några bekanta kod förklara en sträng som heter s och
tilldela den avkastningen värdet av getString.
Och låt oss nu gå vidare för att iterera över karaktärerna i denna sträng.
Nå, hur man gör det?
Det visar sig att en sträng är bara en sekvens av tecken, men mer
på rätt sätt, är en sträng som en matris med tecken, vilket innebär att vi kan använda
klammer notation för index i en sträng och få på individuell
tecken.
>> Med andra ord kan vi gör följande.
För int, jag får 0, och n blir, säga, längden s, med användning av
vår funktion [? rör om?]
[? linje,?]
i är mindre än n i + +.
Med andra ord, med denna slinga, vi kommer att iterera över alla n bokstäver
i strängen s.
Och inom denna loop, kommer jag att kontrollera, om den i: te karaktär i s
större än eller lika till gemener en, och den i: te karaktär är mindre än eller
lika med ett gement c, då vill jag fortsätta att kapitalisera den bokstaven.
Med andra ord, jag vill skriva ut% c som en platshållare och ersättare i för
som platshållare s Bracket I.
>> Men då jag behöver konvertera s fäste jag till versaler.
För att göra detta, kan jag helt enkelt subtrahera vad är skillnaden mellan
gement a och kapital A. Tja, jag faktiskt kommer ihåg att kapital A är
65 i ASCII, och gemener en är 97.
Så skillnaden är tekniskt 32.
Så jag kunde bara hårt kod 32 här.
Men jag kanske inte nödvändigtvis minns dessa siffror.
>> Och dessutom, vad händer om de varierar från dator?
Troligtvis är de inte.
Men poängen är fortfarande att jag kan fortfarande generalisera det aritmetiska uttryck
såsom just vad skillnaden är mellan ett gement a och en kapital A
är vad jag vill att subtrahera bort från denna särskilda liten bokstav.
>> Nu, om detta särskilda brev inte gemener, jag helt enkelt
vill skriva ut.
printf,% c som min platshållare, s Bracket I.
Längst ner i detta program, låt oss helt enkelt skriva ut newline så att min
prompt visas på en ny egen rad.
>> Låt oss nu kompilera programmet med make capitalize0.
Låt oss köra den med capitalize0.
Och låt oss skriva in ett ord som hej i gemener.
Jag får tillbaka HELLO versaler som förväntat.
Men låt oss försöka ett test, den här gången med mitt eget namn, D-A-V-I-D, men med
den första D aktiveras, bara i fall jag trasslat upp något
med det första röding.
Enter, och D-A-V-I-D i versaler skrivs också.