1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: Lad os nu forfine dette program lidt længere. 3 00:00:02,240 --> 00:00:06,510 Ville det ikke være rart, hvis toupper kunne et bogstav, hvis små bogstaver, og 4 00:00:06,510 --> 00:00:08,880 hvis ikke små bogstaver, pass det gennem uændret? 5 00:00:08,880 --> 00:00:12,110 Med andre ord kunne jeg udskifte min if-else blok med en 6 00:00:12,110 --> 00:00:13,960 enkelt opkald til toupper? 7 00:00:13,960 --> 00:00:16,000 >> Nå, for at besvare dette spørgsmål, Jeg ville bedst konsultere 8 00:00:16,000 --> 00:00:17,630 dokumentation for toupper. 9 00:00:17,630 --> 00:00:22,100 For at gøre det, så lad mig åbne en større terminal vindue uden for gedit, og 10 00:00:22,100 --> 00:00:26,060 skriv derefter mand toupper, hvorved hvilket signalerer, at jeg gerne vil åbne 11 00:00:26,060 --> 00:00:29,060 såkaldte man-siden for funktionen toupper. 12 00:00:29,060 --> 00:00:31,580 Ved at trykke Enter, ser jeg en skærm som denne. 13 00:00:31,580 --> 00:00:34,750 Og nu mærke til, at de synes at have kombineret dokumentationen for toupper 14 00:00:34,750 --> 00:00:37,010 overdel med, at der for tolower. 15 00:00:37,010 --> 00:00:38,010 Men uanset. 16 00:00:38,010 --> 00:00:41,640 >> Du vil opdage under synopsis at Jeg mindes, at, ja, for at bruge denne 17 00:00:41,640 --> 00:00:45,220 funktion, skal jeg medtage header fil ctype.h. 18 00:00:45,220 --> 00:00:49,520 Nedenfor dette, kan du se at toupper er anmeldt som returnere en int og 19 00:00:49,520 --> 00:00:52,720 godtagelse int, som er en smule nysgerrig, da hidtil, har jeg været 20 00:00:52,720 --> 00:00:54,370 kun at manipulere tegn. 21 00:00:54,370 --> 00:00:55,310 Men det er OK. 22 00:00:55,310 --> 00:00:59,070 Det viser sig, at dette er blot en konvention, og vi kan stadig bruge C som 23 00:00:59,070 --> 00:01:01,990 selvom det er en char, selvom det er erklæret som en int. 24 00:01:01,990 --> 00:01:05,850 >> Nu, i beskrivelsen her, jeg kan se, at toupper konverterer bogstavet C til 25 00:01:05,850 --> 00:01:07,980 store bogstaver, hvis muligt. 26 00:01:07,980 --> 00:01:11,520 Og under returværdi, ser jeg, at den returnerede værdi er, at den 27 00:01:11,520 --> 00:01:15,320 konverterede brev, eller c, hvis konvertering var ikke muligt. 28 00:01:15,320 --> 00:01:17,120 Og der er den indsigt Jeg var på udkig efter. 29 00:01:17,120 --> 00:01:21,060 Hvis c er ikke i virkeligheden et lille brev, synes det at toupper vil 30 00:01:21,060 --> 00:01:23,450 bare give det videre uændret. 31 00:01:23,450 --> 00:01:25,750 >> Så lad os nu vende tilbage til min kode. 32 00:01:25,750 --> 00:01:30,480 Og lad os nu fjerne helhed denne betingede blok og erstatte det, 33 00:01:30,480 --> 00:01:40,240 ganske enkelt, med printf% c komma toupper af s beslag jeg lukker paren 34 00:01:40,240 --> 00:01:45,120 nære paren semikolon, hvorved hvilket signalerer, at jeg gerne vil erstatte% c 35 00:01:45,120 --> 00:01:49,050 med kapitalisering af ed brev s, hvis den i'te 36 00:01:49,050 --> 00:01:50,530 brev i s er små bogstaver. 37 00:01:50,530 --> 00:01:53,710 Eller selv hvis det ikke er, vil det være passeret gennem uændret. 38 00:01:53,710 --> 00:01:58,790 >> Lad os nu kompilere dette program med gøre capitalize2, og køre det med 39 00:01:58,790 --> 00:02:01,800 capitalize2, igen, skrive hej. 40 00:02:01,800 --> 00:02:03,800 Og ja, vi får tilbage store bogstaver. 41 00:02:03,800 --> 00:02:05,090 Lad os igen skrive David. 42 00:02:05,090 --> 00:02:06,340 Og det, også er store bogstaver. 43 00:02:06,340 --> 00:02:09,380