1 00:00:00,000 --> 00:00:00,340 2 00:00:00,340 --> 00:00:02,690 >> DAVID Malan: Stel dat we zouden willen schrijven een programma dat de gebruiker wordt gevraagd 3 00:00:02,690 --> 00:00:05,100 voor een string en dan speelt die string. 4 00:00:05,100 --> 00:00:09,000 Nou, laten we beginnen met een aantal bekende code waarbij een reeks genaamd s en 5 00:00:09,000 --> 00:00:11,380 toe te wijzen de terugkeer waarde van getString. 6 00:00:11,380 --> 00:00:14,910 En laten we nu overgaan tot meer dan herhalen de personages in deze string. 7 00:00:14,910 --> 00:00:16,000 Nou, hoe dat te doen? 8 00:00:16,000 --> 00:00:19,350 Het blijkt dat een string is gewoon een reeks tekens, maar meer 9 00:00:19,350 --> 00:00:23,320 goed, een string is een array van karakters, wat betekent dat we kunnen gebruiken 10 00:00:23,320 --> 00:00:27,590 vierkante haakjesnotering naar index in een string en krijgen op individueel 11 00:00:27,590 --> 00:00:28,680 karakters. 12 00:00:28,680 --> 00:00:30,980 >> Met andere woorden, we kunnen het volgende doen. 13 00:00:30,980 --> 00:00:36,730 Voor int, ik krijgt 0 en n krijgt, zeggen de lengte van s, met 14 00:00:36,730 --> 00:00:37,530 onze functie [? roer?] 15 00:00:37,530 --> 00:00:38,630 [? lijn,?] 16 00:00:38,630 --> 00:00:40,450 i kleiner dan n i + +. 17 00:00:40,450 --> 00:00:45,290 Met andere woorden, deze lus, we zal itereren over alle n letters 18 00:00:45,290 --> 00:00:46,670 in de string s. 19 00:00:46,670 --> 00:00:51,680 En binnen deze lus, ga ik controleren, als de i-de karakter s 20 00:00:51,680 --> 00:00:57,630 groter dan of gelijk aan een kleine letters, en de i-de karakter dan of 21 00:00:57,630 --> 00:01:02,370 gelijk aan een kleine c, dan wil ik overgaan tot die hoofdletter. 22 00:01:02,370 --> 00:01:08,030 Met andere woorden, ik wil uitprinten% c als een tijdelijke aanduiding en substituut voor 23 00:01:08,030 --> 00:01:11,120 dat placeholder s beugel i. 24 00:01:11,120 --> 00:01:14,390 >> Maar dan moet ik om te zetten s beugel i in hoofdletters. 25 00:01:14,390 --> 00:01:18,930 Om dit te doen, kan ik gewoon aftrekken ongeacht het verschil tussen 26 00:01:18,930 --> 00:01:24,120 kleine letters a en kapitaal A. Nou, ik eigenlijk niet herinneren dat hoofdletter A is 27 00:01:24,120 --> 00:01:27,160 65 in ASCII, en kleine een is 97. 28 00:01:27,160 --> 00:01:29,210 Het verschil is technisch 32. 29 00:01:29,210 --> 00:01:31,620 Dus ik kon gewoon moeilijk code 32 hier. 30 00:01:31,620 --> 00:01:33,870 Maar ik zou niet per se herinner me die nummers. 31 00:01:33,870 --> 00:01:37,250 >> En bovendien, wat als ze verschillen per computer? 32 00:01:37,250 --> 00:01:38,520 Meest waarschijnlijk zijn ze niet. 33 00:01:38,520 --> 00:01:42,460 Maar het punt blijft dat ik kan nog steeds generaliseren dat rekenkundige expressie 34 00:01:42,460 --> 00:01:46,550 zoals zojuist ongeacht het verschil tussen een kleine en een hoofdletter A 35 00:01:46,550 --> 00:01:50,880 is wat ik wil af aftrekken van deze bijzondere kleine letter. 36 00:01:50,880 --> 00:01:54,500 >> Nu, als dit schrijven is geen kleine letters, ik gewoon 37 00:01:54,500 --> 00:01:56,620 willen het uit te printen. 38 00:01:56,620 --> 00:02:01,110 printf,% c als mijn placeholder, s beugel i. 39 00:02:01,110 --> 00:02:05,150 Aan de onderkant van dit programma, laten we gewoon uitprinten nieuwe regel, zodat mijn 40 00:02:05,150 --> 00:02:07,520 prompt verschijnt op een nieuwe lijn van zijn eigen. 41 00:02:07,520 --> 00:02:11,540 >> Laten we nu dit programma te compileren met make capitalize0. 42 00:02:11,540 --> 00:02:13,900 Laten we lopen met capitalize0. 43 00:02:13,900 --> 00:02:17,190 En laten we typt in een woord als hello in alle kleine letters. 44 00:02:17,190 --> 00:02:19,960 Ik terug HELLO in hoofdletters zoals verwacht. 45 00:02:19,960 --> 00:02:25,210 Maar laten we proberen nog een test, dit keer met mijn eigen naam, D-A-V-I-D, maar met 46 00:02:25,210 --> 00:02:28,170 de eerste D gekapitaliseerd, maar in voor het geval ik iets gesloopt 47 00:02:28,170 --> 00:02:29,430 met die eerste char. 48 00:02:29,430 --> 00:02:34,250 Enter, en D-A-V-I-D in hoofdletters wordt ook geprint. 49 00:02:34,250 --> 00:02:36,873