1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID Malan: Laten we nu verfijnen dit programma een beetje verder. 3 00:00:02,240 --> 00:00:06,510 Zou het niet mooi zijn als toupper kon kapitaliseren brief als kleine letters, en 4 00:00:06,510 --> 00:00:08,880 zo niet kleine letters, pas het door onveranderd? 5 00:00:08,880 --> 00:00:12,110 Met andere woorden, ik kon vervangen mijn if-else-blok met een 6 00:00:12,110 --> 00:00:13,960 enkele oproep tot toupper? 7 00:00:13,960 --> 00:00:16,000 >> Nou, om deze vraag te beantwoorden, Ik zou best raadplegen 8 00:00:16,000 --> 00:00:17,630 documentatie voor toupper. 9 00:00:17,630 --> 00:00:22,100 Om dit te doen, laat me een grotere terminal te openen raam buiten gedit, en 10 00:00:22,100 --> 00:00:26,060 typ man toupper, waardoor betekent dat ik zou willen openen 11 00:00:26,060 --> 00:00:29,060 zogenaamde man pagina voor de functie toupper. 12 00:00:29,060 --> 00:00:31,580 Bij het slaan Enter, zie ik een scherm als deze. 13 00:00:31,580 --> 00:00:34,750 En nu merken dat ze lijken te hebben combineerde de documentatie voor toupper 14 00:00:34,750 --> 00:00:37,010 bovenkant met die voor tolower. 15 00:00:37,010 --> 00:00:38,010 Maar maakt niet uit. 16 00:00:38,010 --> 00:00:41,640 >> U zult merken onder de samenvatting die Ik moet denken dat, inderdaad, om dit te gebruiken 17 00:00:41,640 --> 00:00:45,220 functie, moet ik ook de header file ctype.h. 18 00:00:45,220 --> 00:00:49,520 Daaronder zie je dat toupper is aangegeven als terugkerende een int en 19 00:00:49,520 --> 00:00:52,720 accepteren van een int, die een beetje nieuwsgierig, want tot nu toe heb ik geweest 20 00:00:52,720 --> 00:00:54,370 manipuleren alleen chars. 21 00:00:54,370 --> 00:00:55,310 Maar dat is OK. 22 00:00:55,310 --> 00:00:59,070 Het blijkt dat dit slechts een conventie, en we kunnen nog steeds gebruik maken van c als 23 00:00:59,070 --> 00:01:01,990 al is het een char, hoewel het is gedeclareerd als een int. 24 00:01:01,990 --> 00:01:05,850 >> Nu, in de beschrijving hier, zie ik dat toupper zet de letter c om 25 00:01:05,850 --> 00:01:07,980 hoofdletters indien mogelijk. 26 00:01:07,980 --> 00:01:11,520 En onder return waarde, zie ik dat de geretourneerde waarde die van de 27 00:01:11,520 --> 00:01:15,320 omgezet letter of c, indien de conversie niet mogelijk. 28 00:01:15,320 --> 00:01:17,120 En er is het inzicht Ik was op zoek naar. 29 00:01:17,120 --> 00:01:21,060 Als c is in feite een kleine brief, het lijkt erop dat toupper zal 30 00:01:21,060 --> 00:01:23,450 simpelweg geeft het door ongewijzigd. 31 00:01:23,450 --> 00:01:25,750 >> Dus laten we nu terugkeren naar mijn code. 32 00:01:25,750 --> 00:01:30,480 En laten we verwijderen nu het geheel van deze voorwaardelijke blok en te vervangen, 33 00:01:30,480 --> 00:01:40,240 heel eenvoudig, met printf% c komma toupper van s beugel i sluiten Paren 34 00:01:40,240 --> 00:01:45,120 dicht Paren puntkomma, waardoor betekent dat ik zou willen% c vervangen 35 00:01:45,120 --> 00:01:49,050 met de kapitalisatie van de et brief in s als de i 36 00:01:49,050 --> 00:01:50,530 letter in s wordt in kleine letters. 37 00:01:50,530 --> 00:01:53,710 Of zelfs als het niet is, zal het doorlopen ongewijzigd. 38 00:01:53,710 --> 00:01:58,790 >> Laten we nu dit programma samen te stellen met maken capitalize2, en voer het uit met 39 00:01:58,790 --> 00:02:01,800 capitalize2, nogmaals, het typen hello. 40 00:02:01,800 --> 00:02:03,800 En inderdaad, krijgen we terug hoofdletters. 41 00:02:03,800 --> 00:02:05,090 Laten we opnieuw typen David. 42 00:02:05,090 --> 00:02:06,340 En het ook een hoofdletter. 43 00:02:06,340 --> 00:02:09,380