DAVID J. Malan: Stel dat ik zou willen de uitvoering van een programma dat vraagt de gebruiker voor een string en dan verder om hun inbreng te kapitaliseren, het omzetten van een kleine letters dat ze typt in hoofdletters. Nou, laten we verder gaan en uitvoering van dat programma. 

Laten we eerst onder cs50.h gevolgd door onder andere stdio.h. En zodat we kunnen strlen gebruiken, laten we onder andere string.h. 

Laten we het volgende verklaren hoofd als int main nietig en laten we nu overgaan tot vragen de gebruiker voor een string. Printf, laten we vragen hen voor wat input. Nu laten we verklaren een string - we noemen het s - en opslaan in het resultaat van het aanroepen de CS50 bibliotheekfunctie GetString. 

Laten we nu overgaan tot itereren over elk van de personages in s, kapitaliseren elke kleine letters die we zien. Voor int, krijg ik 0. Laten we ook verklaren n als gelijk aan de string lengte van jaren, zodat we kunnen herhalen van i tot n, de lengte van s en op elke iteratie increment i. 

En dan de binnenkant van deze lus, laten we eerste controle is de huidige letter - de i-de brief van s, om zo te zeggen - een kleine letter. Als s beugel i groter of gelijk naar kleine letters a, en het is minder hoogste kleine z - Nu willen we een kleine letter te zetten brief in hoofdletters, herinneren eerst dat in ASCII een kleine letter a is 97 en een hoofdletter A is 65. Ondertussen, een kleine letter b is 98, en een hoofdletter B is 66. 

Als we blijven kijken naar dat patroon, we zullen zien dat de kleine letters letters zijn altijd 32 waarden hoger dan de hoofdletters. Dus als we willen converteren van kleine letters naar hoofdletters, het hoort volstaan, echt, voor aftrekken 32 van input van de gebruiker. Of meer in het algemeen alleen aftrekken dat verschil tussen een kleine en een een hoofdletter A. 

Hoe uit te drukken dat? Nou, laten we het doen in de code. Printf, citaat, unquote "% c" om af te drukken het huidige karakter, gevolgd door drukken wat er in s beugel i minus het resultaat van het doen van een kleine minus hoofdletters A puntkomma. Met andere woorden, haakjes expressie, weinig een min grote A, is gaan om terug te keren naar ons op het einde van de dag 32. Maar ik denk niet hoeft te onthouden dat het 32. Ik kan zorgen dat de computer te achterhalen wat het verschil tussen kleine letters een en kapitaal A is. 

Ondertussen eens, ik weet dat verschil, Ik kan het aftrekken van s beugel i, die zal nemen wat is vermoedelijk een kleine letter een lagere waarde, namelijk een waarde die kaarten op een hoofdletter equivalent. Laten we nu nog redden, compileren, en uitvoeren van deze programma. Maak kapitaliseren dot slash gekapitaliseerd. En mijn inbreng zal zijn hello. En daar hebben we, hallo. 

Nu is mijn prompt, toegegeven, is een beetje lelijk, want we hebben weggelaten een beetje drukken. En laten we terug gaan en toevoegen dat. Aan de onderkant van dit programma, Ik ben erg eenvoudig, en grotendeels voor esthetisch doel, naar printf voegen, citaat, unquote backslash n. Laten we het opnieuw opslaan van dit bestand opnieuw compileren, herhaling. 

Maak kapitaliseren, dot slash kapitaliseren. Nogmaals, voor de input Ik zal zorgen voor "hello" in alle kleine letters en nu druk op Enter, en "hello", veel meer netjes afgedrukt.