1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:02,690 >> DAVID MALAN: Antag at vi gerne vil skrive et program, der beder brugeren 3 00:00:02,690 --> 00:00:05,100 efter en streng, og derefter udnytter denne streng. 4 00:00:05,100 --> 00:00:09,000 Nå, lad os starte med nogle velkendte kode erklære en streng kaldet s og 5 00:00:09,000 --> 00:00:11,380 tildele den afkastet værdi getString. 6 00:00:11,380 --> 00:00:14,910 Og lad os nu fortsætte med at gentage over personerne i denne streng. 7 00:00:14,910 --> 00:00:16,000 Nå, hvordan man gør det? 8 00:00:16,000 --> 00:00:19,350 Det viser sig, at en streng er blot en sekvens af tegn, men mere 9 00:00:19,350 --> 00:00:23,320 ordentligt, en streng er en vifte af tegn, hvilket betyder vi kan bruge 10 00:00:23,320 --> 00:00:27,590 firkantet beslag notation til indekset i en snor og komme på individuel 11 00:00:27,590 --> 00:00:28,680 tegn. 12 00:00:28,680 --> 00:00:30,980 >> Med andre ord, kan vi gøre følgende. 13 00:00:30,980 --> 00:00:36,730 For int, jeg får 0, og n bliver, sige, at længden af ​​s, ved hjælp af 14 00:00:36,730 --> 00:00:37,530 vores funktion [? omrøres?] 15 00:00:37,530 --> 00:00:38,630 [? linje,?] 16 00:00:38,630 --> 00:00:40,450 i er mindre end n i + +. 17 00:00:40,450 --> 00:00:45,290 Med andre ord, med denne løkke, vi vil gentage over alle n bogstaver 18 00:00:45,290 --> 00:00:46,670 i strengen s. 19 00:00:46,670 --> 00:00:51,680 Og inden for denne løkke, vil jeg check, hvis i'te karakter i s 20 00:00:51,680 --> 00:00:57,630 større end eller lig med små bogstaver a, og den i'te karakter er mindre end eller 21 00:00:57,630 --> 00:01:02,370 svarende til et lille c, så vil jeg fortsæt at kapitalisere det bogstav. 22 00:01:02,370 --> 00:01:08,030 Med andre ord, jeg ønsker at udskrive% c som pladsholder og erstatning i for 23 00:01:08,030 --> 00:01:11,120 at pladsholder s beslag jeg. 24 00:01:11,120 --> 00:01:14,390 >> Men så er jeg nødt til at konvertere s beslag jeg til store bogstaver. 25 00:01:14,390 --> 00:01:18,930 For at gøre dette, kan jeg simpelthen trække uanset forskellen er mellem 26 00:01:18,930 --> 00:01:24,120 små bogstaver a og kapital A. Nå, jeg faktisk kan huske, at kapital A er 27 00:01:24,120 --> 00:01:27,160 65 i ASCII og lille en er 97. 28 00:01:27,160 --> 00:01:29,210 Så forskellen er teknisk 32. 29 00:01:29,210 --> 00:01:31,620 Så jeg kunne bare svært kode 32 her. 30 00:01:31,620 --> 00:01:33,870 Men jeg er måske ikke nødvendigvis huske disse numre. 31 00:01:33,870 --> 00:01:37,250 >> Og i øvrigt, hvad nu hvis de variere fra computer? 32 00:01:37,250 --> 00:01:38,520 Mest sandsynligt er de ikke. 33 00:01:38,520 --> 00:01:42,460 Men pointen er, at jeg stadig kan generalisere det aritmetiske udtryk 34 00:01:42,460 --> 00:01:46,550 som blot uanset forskellen mellem et lille a og et stort A 35 00:01:46,550 --> 00:01:50,880 er hvad jeg ønsker at trække væk fra netop denne lille bogstav. 36 00:01:50,880 --> 00:01:54,500 >> Nu, hvis denne bestemt bogstav ikke små bogstaver, jeg simpelthen 37 00:01:54,500 --> 00:01:56,620 ønsker at printe det ud. 38 00:01:56,620 --> 00:02:01,110 printf,% c som min pladsholder, s beslag dvs. 39 00:02:01,110 --> 00:02:05,150 Nederst i dette program, så lad os bare udskrive newline så min 40 00:02:05,150 --> 00:02:07,520 prompt vises på en ny sin linje. 41 00:02:07,520 --> 00:02:11,540 >> Lad os nu kompilere dette program med make capitalize0. 42 00:02:11,540 --> 00:02:13,900 Lad os køre det med capitalize0. 43 00:02:13,900 --> 00:02:17,190 Og lad os skrive i et ord som Hej i alle små bogstaver. 44 00:02:17,190 --> 00:02:19,960 Jeg kommer tilbage HELLO med store bogstaver som forventet. 45 00:02:19,960 --> 00:02:25,210 Men lad os prøve en test mere, denne gang med mit eget navn, D-A-V-I-D, men med 46 00:02:25,210 --> 00:02:28,170 den første D kapitaliseret, bare i tilfælde jeg rodet noget op 47 00:02:28,170 --> 00:02:29,430 med det første tegn. 48 00:02:29,430 --> 00:02:34,250 Enter, og D-A-V-I-D med store bogstaver udskrives så godt. 49 00:02:34,250 --> 00:02:36,873