1
00:00:00,000 --> 00:00:00,720

2
00:00:00,720 --> 00:00:03,190
>> DAVID J. Malan: Stel dat ik zou willen
de uitvoering van een programma dat vraagt

3
00:00:03,190 --> 00:00:06,650
de gebruiker voor een string en dan verder
om hun inbreng te kapitaliseren,

4
00:00:06,650 --> 00:00:09,790
het omzetten van een kleine letters
dat ze typt in hoofdletters.

5
00:00:09,790 --> 00:00:11,770
Nou, laten we verder gaan en
uitvoering van dat programma.

6
00:00:11,770 --> 00:00:18,760
>> Laten we eerst onder cs50.h gevolgd
door onder andere stdio.h.

7
00:00:18,760 --> 00:00:23,990
En zodat we kunnen strlen gebruiken,
laten we onder andere string.h.

8
00:00:23,990 --> 00:00:29,860
>> Laten we het volgende verklaren hoofd als int main nietig
en laten we nu overgaan tot vragen

9
00:00:29,860 --> 00:00:31,600
de gebruiker voor een string.

10
00:00:31,600 --> 00:00:34,840
Printf, laten we vragen hen
voor wat input.

11
00:00:34,840 --> 00:00:36,460
Nu laten we verklaren een string -

12
00:00:36,460 --> 00:00:37,630
we noemen het s -

13
00:00:37,630 --> 00:00:44,010
en opslaan in het resultaat van het aanroepen
de CS50 bibliotheekfunctie GetString.

14
00:00:44,010 --> 00:00:48,850
>> Laten we nu overgaan tot itereren over elk
van de personages in s, kapitaliseren

15
00:00:48,850 --> 00:00:50,650
elke kleine letters die we zien.

16
00:00:50,650 --> 00:00:53,630
Voor int, krijg ik 0.

17
00:00:53,630 --> 00:00:58,780
Laten we ook verklaren n als gelijk aan
de string lengte van jaren, zodat we kunnen

18
00:00:58,780 --> 00:01:03,590
herhalen van i tot n, de
lengte van s en op elke

19
00:01:03,590 --> 00:01:05,760
iteratie increment i.

20
00:01:05,760 --> 00:01:09,970
>> En dan de binnenkant van deze lus, laten we
eerste controle is de huidige letter -

21
00:01:09,970 --> 00:01:12,270
de i-de brief van s, om zo te zeggen -

22
00:01:12,270 --> 00:01:14,170
een kleine letter.

23
00:01:14,170 --> 00:01:23,090
Als s beugel i groter of gelijk
naar kleine letters a, en het is minder

24
00:01:23,090 --> 00:01:26,900
hoogste kleine z -

25
00:01:26,900 --> 00:01:30,860
Nu willen we een kleine letter te zetten
brief in hoofdletters, herinneren eerst dat

26
00:01:30,860 --> 00:01:35,810
in ASCII een kleine letter a is 97
en een hoofdletter A is 65.

27
00:01:35,810 --> 00:01:41,020
Ondertussen, een kleine letter b is 98,
en een hoofdletter B is 66.

28
00:01:41,020 --> 00:01:44,180
>> Als we blijven kijken naar dat patroon,
we zullen zien dat de kleine letters

29
00:01:44,180 --> 00:01:49,240
letters zijn altijd 32 waarden hoger
dan de hoofdletters.

30
00:01:49,240 --> 00:01:53,490
Dus als we willen converteren van kleine letters
naar hoofdletters, het hoort

31
00:01:53,490 --> 00:01:57,210
volstaan, echt, voor aftrekken
32 van input van de gebruiker.

32
00:01:57,210 --> 00:02:01,330
Of meer in het algemeen alleen aftrekken dat
verschil tussen een kleine en een een

33
00:02:01,330 --> 00:02:02,310
hoofdletter A.

34
00:02:02,310 --> 00:02:03,410
>> Hoe uit te drukken dat?

35
00:02:03,410 --> 00:02:04,640
Nou, laten we het doen in de code.

36
00:02:04,640 --> 00:02:09,960
Printf, citaat, unquote "% c" om af te drukken
het huidige karakter, gevolgd door

37
00:02:09,960 --> 00:02:18,500
drukken wat er in s beugel i minus
het resultaat van het doen van een kleine

38
00:02:18,500 --> 00:02:22,660
minus hoofdletters A puntkomma.

39
00:02:22,660 --> 00:02:27,010
Met andere woorden, haakjes
expressie, weinig een min grote A, is

40
00:02:27,010 --> 00:02:29,360
gaan om terug te keren naar ons op
het einde van de dag 32.

41
00:02:29,360 --> 00:02:31,230
Maar ik denk niet hoeft te onthouden
dat het 32.

42
00:02:31,230 --> 00:02:34,150
Ik kan zorgen dat de computer te achterhalen
wat het verschil tussen kleine letters

43
00:02:34,150 --> 00:02:35,990
een en kapitaal A is.

44
00:02:35,990 --> 00:02:39,610
>> Ondertussen eens, ik weet dat verschil,
Ik kan het aftrekken van s

45
00:02:39,610 --> 00:02:43,710
beugel i, die zal nemen wat is
vermoedelijk een kleine letter een

46
00:02:43,710 --> 00:02:48,100
lagere waarde, namelijk een waarde die kaarten
op een hoofdletter equivalent.

47
00:02:48,100 --> 00:02:51,240
Laten we nu nog redden, compileren,
en uitvoeren van deze programma.

48
00:02:51,240 --> 00:02:57,760
Maak kapitaliseren dot slash gekapitaliseerd.

49
00:02:57,760 --> 00:03:01,290
En mijn inbreng zal zijn hello.

50
00:03:01,290 --> 00:03:02,920
En daar hebben we, hallo.

51
00:03:02,920 --> 00:03:05,570
>> Nu is mijn prompt, toegegeven, is
een beetje lelijk, want we hebben

52
00:03:05,570 --> 00:03:07,810
weggelaten een beetje drukken.

53
00:03:07,810 --> 00:03:09,370
En laten we terug gaan en toevoegen dat.

54
00:03:09,370 --> 00:03:12,890
Aan de onderkant van dit programma,
Ik ben erg eenvoudig, en grotendeels voor

55
00:03:12,890 --> 00:03:18,440
esthetisch doel, naar printf voegen,
citaat, unquote backslash n.

56
00:03:18,440 --> 00:03:22,330
Laten we het opnieuw opslaan van dit bestand
opnieuw compileren, herhaling.

57
00:03:22,330 --> 00:03:28,090
>> Maak kapitaliseren, dot slash kapitaliseren.

58
00:03:28,090 --> 00:03:32,540
Nogmaals, voor de input Ik zal zorgen voor "hello"
in alle kleine letters en nu druk op Enter,

59
00:03:32,540 --> 00:03:34,550
en "hello", veel meer netjes afgedrukt.

60
00:03:34,550 --> 00:03:36,432