DAVID J. Malan: Supozu, ke mi ŝatus apliki programon kiu pelas la uzanto por ŝnuro kaj tiam procedas profiti ilian eniron, konverti ajnan minusklaj literoj ke oni tajpas al majuskle. Nu, ni iru antaŭen kaj apliki tiu programo. 

Ni unue inkluzivi cs50.h sekvis per inkluzivi stdio.h. Kaj tial ke ni povas uzi strlen, ni inkluzivas string.h. 

Ni sekvanta deklaras ĉefajn kiel int ĉefa void kaj ni nun procedas suflori la uzanto por kordoj. Printf, ni instigas ilin por iuj enigo. Nun ni rakontos ĉenon - ni nomas ĝin s - kaj stoki en ĝi la rezulto de vokanta la cs50 biblioteko funkcio GetString. 

Ni nun procedas persisti super ĉiu de la karakteroj en s, kapitaligi neniu minusklaj literoj kiujn ni vidas. Por int, i get 0. Ni ankaŭ deklari n kiel estante egala al la arĉa longo de s tiel ke ni povos persisti de i supren ĝis n, la longeco de s, kaj sur ĉiu ripeta pliigo i. 

Kaj poste ene de ĉi maŝo, ni unua ĉeko estas la nuna letero - la i-a letero de s, por tiel diri - minuskla litero. Se s krampo i estas pli granda ol aŭ egala al minuskla a, kaj ĝi estas malpli ol aŭ egala al minuskla z - Nun se ni volas konverti minusklajn literon, memoru unue ke en Askio minuskla a estas 97 kaj majuskle A estas 65. Dume, minuskla b estas 98, kaj majuskle B estas 66. 

Se ni daŭrigus rigardi ke ŝablono, ni vidos, ke la minuskla leteroj estas ĉiam de 32 valoroj pli altaj ol la majusklajn literojn. Do, se ni volas igi de minuskla al majuskle, devus sufiĉi, vere, substraer 32 el la uzanto enigon. Aŭ pli ĝenerale, simple subtrahi ke diferenco inter minuskla a kaj a ĉefurbo A. 

Kiel esprimi tion? Nu, ni faru ĝin en kodo. Printf, citaĵo, unquote "% c" print la nuna karaktero, sekvate de impreso ajn estas en s krampo i minus la rezulto de fari minuskla a minus majuskle punktokomo. Alivorte, ĉi parenthetical esprimo, iom minus granda A, estas tuj revenos nin ĉe la fino de la tago 32. Sed mi ne devas memori ke ĝi estas 32. Mi povas permesi al la komputilo por elkompreni kio estas la diferenco inter minuskla a kaj ĉefurbo A estas. 

Dume, kiam mi scias ke la diferenco, Mi povas subtrahi ĝin el s krampo i, kiu prenos kio estas supozeble minuskla letero al malsupra valoron, nome valoro kiu mapas sur an majuskle ekvivalento. Ni nun savu, kompili, kaj kuri ĉi programo. Faru capitalize dot oblikvo majuskle. Kaj mia enigo estos saluton. Kaj tie ni havas, saluton. 

Nun mia prompto, rekoni, estas iom malbela, ĉar ni preterlasita unu bito de presado. Kaj ni reiru kaj aldonu tion. Je la tre malsupro de tiu programo, Mi estas tre simple, kaj grandparte pro estetikan celon, tuj aldonu printf, citaĵo, unquote backslash n. Ni resave tiu dosiero, rekompili, rerun. 

Faru capitalize, skalara oblikvo capitalize. Denove, por enigo Mi havigi "hello" en ĉiuj minuskloj kaj nun batis Enter, kaj "Saluton," multe pli pure presita.