1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: Låt oss nu förfina detta program lite längre. 3 00:00:02,240 --> 00:00:06,510 Skulle det inte vara trevligt om toupper kunde kapitalisera ett brev om gemener, samt 4 00:00:06,510 --> 00:00:08,880 om inte gemener, pass det genom oförändrad? 5 00:00:08,880 --> 00:00:12,110 Med andra ord, skulle jag byta ut min if-else-block med en 6 00:00:12,110 --> 00:00:13,960 enda samtal till toupper? 7 00:00:13,960 --> 00:00:16,000 >> Jo, för att besvara denna fråga, Jag skulle bäst rådfråga 8 00:00:16,000 --> 00:00:17,630 dokumentation för toupper. 9 00:00:17,630 --> 00:00:22,100 För att göra detta, låt mig öppna en större terminal fönster utanför gedit och 10 00:00:22,100 --> 00:00:26,060 skriv man toupper och därigenom vilket innebär att jag vill öppna den 11 00:00:26,060 --> 00:00:29,060 sk manualsidan för funktionen toupper. 12 00:00:29,060 --> 00:00:31,580 Vid slå in, ser jag en skärm som den här. 13 00:00:31,580 --> 00:00:34,750 Och nu märker att de verkar ha kombinerat dokumentationen för toupper 14 00:00:34,750 --> 00:00:37,010 övre med det för tolower. 15 00:00:37,010 --> 00:00:38,010 Men oavsett. 16 00:00:38,010 --> 00:00:41,640 >> Du kommer att märka under synopsis som Jag påminns om att, ja, för att använda detta 17 00:00:41,640 --> 00:00:45,220 funktion, måste jag inkludera header-fil ctype.h. 18 00:00:45,220 --> 00:00:49,520 Därunder ser du att toupper är deklareras som åter en int och 19 00:00:49,520 --> 00:00:52,720 acceptera en int, vilket är lite nyfiken, eftersom hittills har jag varit 20 00:00:52,720 --> 00:00:54,370 endast manipulera tecken. 21 00:00:54,370 --> 00:00:55,310 Men det är OK. 22 00:00:55,310 --> 00:00:59,070 Det visar sig att detta bara är en konvent, och vi kan fortfarande använda c som 23 00:00:59,070 --> 00:01:01,990 om det är en röding, även om det deklareras som en int. 24 00:01:01,990 --> 00:01:05,850 >> Nu, i beskrivningen här, ser jag att toupper omvandlar bokstaven c till 25 00:01:05,850 --> 00:01:07,980 versaler om möjligt. 26 00:01:07,980 --> 00:01:11,520 Och under returvärde, ser jag att det returnerade värdet är den med 27 00:01:11,520 --> 00:01:15,320 konverterad bokstav, eller c, om konvertering inte var möjligt. 28 00:01:15,320 --> 00:01:17,120 Och det finns insikten Jag letade efter. 29 00:01:17,120 --> 00:01:21,060 Om c är inte, i själva verket, ett gement brev, verkar det som toupper kommer 30 00:01:21,060 --> 00:01:23,450 helt enkelt sprider den oförändrad. 31 00:01:23,450 --> 00:01:25,750 >> Så låt oss nu återvända till min kod. 32 00:01:25,750 --> 00:01:30,480 Och låt oss nu ta bort helheten av denna villkorsblocket och ersätta den, 33 00:01:30,480 --> 00:01:40,240 helt enkelt, med printf% c kommatecken toupper av s fäste jag stänger Paren 34 00:01:40,240 --> 00:01:45,120 close föräldra semikolon, och därigenom vilket innebär att jag skulle vilja byta ut% c 35 00:01:45,120 --> 00:01:49,050 med aktivering av : te bokstaven i er om den i: te 36 00:01:49,050 --> 00:01:50,530 brev i s är gemener. 37 00:01:50,530 --> 00:01:53,710 Eller även om det inte är, kommer det att vara passera genom oförändrad. 38 00:01:53,710 --> 00:01:58,790 >> Låt oss nu kompilera programmet med göra capitalize2, och kör den med 39 00:01:58,790 --> 00:02:01,800 capitalize2, återigen, att skriva hej. 40 00:02:01,800 --> 00:02:03,800 Och faktiskt, vi får tillbaka versaler. 41 00:02:03,800 --> 00:02:05,090 Låt oss återigen skriver David. 42 00:02:05,090 --> 00:02:06,340 Och det är också versaler. 43 00:02:06,340 --> 00:02:09,380