>> DAVID J. MALAN: Anta at jeg ønsker å gjennomføre et program som ber
brukeren for en streng og deretter fortsetter å utnytte deres innspill,
konvertere eventuelle små bokstaver at de skriver til store bokstaver.
Vel, la oss gå videre og gjennomføre det programmet.
>> La oss først inkludere cs50.h fulgt ved inkluderer stdio.h.
Og slik at vi kan bruke strlen, la oss inkludere string.h.
>> La oss neste erklære hoved som int main tomrom og la oss nå gå videre til å spørre
brukeren for en streng.
Printf, la oss be dem for noen innspill.
Nå la oss erklære en streng -
vi kaller det er -
og lagre i det resultatet av å ringe Det CS50 bibliotek funksjon GetString.
>> La oss nå gå videre til å iterere over hver av karakterene i s, utnytte
noen små bokstaver som vi ser.
For int, jeg får 0.
La oss også erklære n som er lik strengen lengden på s, slik at vi kan
iterere fra jeg opp til n, den lengde s, og i hver
iterasjon økning i.
>> Og så innsiden av denne sløyfen, la oss første sjekk er gjeldende bokstav -
i-te brev s, så å si -
en liten bokstav.
Hvis s braketten i er større enn eller lik til små bokstaver a, og det er mindre
enn eller lik små bokstaver z -
Nå hvis vi ønsker å konvertere en små bokstaver brev til store bokstaver, husker første at
i ASCII inn en liten en er 97 og en stor bokstav A er 65 år.
I mellomtiden, er en små bokstaver b 98, og en stor bokstav B er 66.
>> Hvis vi fortsetter å se på dette mønsteret, vi får se at små bokstaver
bokstavene er alltid 32 verdier høyere enn de store bokstaver.
Så hvis vi ønsker å konvertere fra små bokstaver til store bokstaver, bør det
nok, egentlig, å trekke 32 fra brukerens input.
Eller mer generelt, bare trekke fra at Forskjellen mellom en små en og en
kapital A.
>> Hvordan å uttrykke det?
Vel, la oss gjøre det i kode.
Printf, sitat, unquote "% c" for å skrive ut i tegnene, etterfulgt av
utskrift alt som er i s brakett i minus resultatet av å gjøre små bokstaver et
minus store bokstaver Semikolon.
Med andre ord, dette parentes uttrykk, lite minus stor A, er
kommer til å returnere til oss på slutten av dag 32..
Men jeg trenger ikke å huske at det er 32.
Jeg kan la datamaskinen til å finne ut hva forskjellen mellom små
en og kapital A er.
>> I mellomtiden, når jeg vet at forskjellen, Jeg kan trekke det fra s
brakett i, noe som vil ta det som er antagelig en liten bokstav til en
lavere verdi, nemlig en verdi som kart på en stor bokstav tilsvarende.
La oss nå lagre, sammenstille, og kjøre dette programmet.
Gjør kapital dot slash kapitalisert.
Og mitt innspill vil være hallo.
Og det har vi, hallo.
>> Nå er min ledeteksten, riktignok er litt stygg, fordi vi har
utelatt en bit av utskrift.
Og la oss gå tilbake og legge det.
Helt på bunnen av dette programmet, Jeg er veldig enkelt, og i stor grad for
estetisk formål, kommer til å legge printf, sitat, unquote backslash n.
La oss resave denne filen, rekompilere, reprise.
>> Gjør kapitalisere, dot slash kapitalisere.
Igjen, for innspill vil jeg gi "hallo" i alle små bokstaver og nå trykker Enter,
og "hallo", mye mer renslig ut.