>> DAVID J. MALAN: Antag, at jeg gerne vil at gennemføre et program, der beder
brugeren efter en streng og fortsætter derefter at udnytte deres input,
konvertere eventuelle små bogstaver at de skriver til store bogstaver.
Nå, lad os gå videre og gennemføre programmet.
>> Lad os først omfatte cs50.h fulgt ved bl.a. stdio.h.
Og så vi kan bruge strlen, lad os inkludere string.h.
>> Lad os næste erklære main som int main tomrum og lad os nu gå videre til at bede
brugeren for en streng.
Printf, lad os bede dem for nogle input.
Lad os nu erklære en snor -
vi vil kalde det er -
og gemmer i det resultatet af at kalde Den CS50 biblioteksfunktionen getString.
>> Lad os nu gå videre til at gentage over hver af tegnene i s, kapitalisere
eventuelle små bogstaver, som vi ser.
For int, får jeg 0.
Lad os også erklære n som værende lig strengen længde s, så vi kan
gentage fra i indtil n er længde s, og på hver
iteration tilvækst i.
>> Og derefter inde i denne løkke, så lad os første check er den aktuelle bogstav -
det i'te brev af s, så at sige -
et lille bogstav.
Hvis s beslag i er større end eller lig til små bogstaver a, og det er mindre
end eller lig med små bogstaver z -
Nu, hvis vi ønsker at konvertere et lille brev til store bogstaver, huske først at
i ASCII et lille a er 97 og et stort A er 65 år.
I mellemtiden har en lille b er 98, og et stort B er 66.
>> Hvis vi fortsætter med at se på det mønster, vi vil se, at det lille
breve er altid 32 værdier højere end de store bogstaver.
Så hvis vi ønsker at konvertere fra små bogstaver til store bogstaver, bør det
tilstrækkeligt, virkelig, at trække 32 fra brugerens input.
Eller mere generelt, bare trække det Forskellen mellem et lille a og et
kapital A.
>> Hvordan man kan udtrykke det?
Nå, lad os gøre det i kode.
Printf, citat, citat slut "% c" for at udskrive det aktuelle tegn, efterfulgt af
udskrivning hvad er i s beslag i minus resultatet af at gøre små bogstaver a
minus store bogstaver et semikolon.
Med andre ord er dette parentetiske udtryk, lidt en minus stort A, er
vil vende tilbage til os på slutningen af ​​dag 32.
Men jeg behøver ikke at huske at det er 32..
Jeg kan gøre det muligt for computeren at finde ud af hvad forskellen mellem små bogstaver
a og kapital A er.
>> I mellemtiden, når jeg ved, at forskellen Jeg kan trække det fra s
beslag i, som vil tage, hvad der er formentlig et lille brev til en
lavere værdi, nemlig en værdi, der kortlægger på et stort tilsvarende.
Lad os nu gemme, kompilere, og køre dette program.
Gør kapitalisere dot skråstreg kapitaliseret.
Og mit input vil være hej.
Og der har vi, hej.
>> Nu er min prompt, ganske vist er lidt grimt, fordi vi har
udeladt en smule udskrivning.
Og lad os gå tilbage og tilføje det.
Nederst i dette program, Jeg er meget enkelt, og i vid udstrækning for
æstetisk formål, kommer til at tilføje printf, citat, citat slut backslash n.
Lad os gem denne fil, rekompilere, genudsendelse.
>> Gør kapitalisere, dot skråstreg kapitalisere.
Igen, for input jeg vil give "hello" i alle små bogstaver, og nu trykke Enter,
og "goddag", langt mere rent udskrives.