1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: La oss nå avgrense dette programmet litt lenger. 3 00:00:02,240 --> 00:00:06,510 Ville det ikke vært fint hvis toupper kunne en stor bokstav hvis små bokstaver, og 4 00:00:06,510 --> 00:00:08,880 hvis ikke små bokstaver, pass det gjennom uendret? 5 00:00:08,880 --> 00:00:12,110 Med andre ord, kan jeg erstatte min if-else-blokken med en 6 00:00:12,110 --> 00:00:13,960 eneste samtale til toupper? 7 00:00:13,960 --> 00:00:16,000 >> Vel, for å svare på dette spørsmålet, Jeg hadde beste konsultere 8 00:00:16,000 --> 00:00:17,630 dokumentasjon for toupper. 9 00:00:17,630 --> 00:00:22,100 For å gjøre dette, la meg åpne en større terminal vindu utenfor gedit, og 10 00:00:22,100 --> 00:00:26,060 deretter skriver mannen toupper, og dermed som betyr at jeg ønsker å åpne den 11 00:00:26,060 --> 00:00:29,060 såkalt man-siden for funksjonen toupper. 12 00:00:29,060 --> 00:00:31,580 Ved treffer Enter, ser jeg en skjerm som dette. 13 00:00:31,580 --> 00:00:34,750 Og nå merker at de synes å ha kombinert dokumentasjonen for toupper 14 00:00:34,750 --> 00:00:37,010 øvre med at for tolower. 15 00:00:37,010 --> 00:00:38,010 Men uansett. 16 00:00:38,010 --> 00:00:41,640 >> Du vil merke under synopsis at Jeg minnes at, ja, til å bruke denne 17 00:00:41,640 --> 00:00:45,220 funksjon, må jeg ta med header-fil ctype.h. 18 00:00:45,220 --> 00:00:49,520 Under det, ser du at toupper er erklært som returnerer en int og 19 00:00:49,520 --> 00:00:52,720 akseptere en int, som er litt nysgjerrig, siden så langt, jeg har vært 20 00:00:52,720 --> 00:00:54,370 bare 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 seg at dette bare er en konvensjonen, og vi kan fortsatt bruke c som 23 00:00:59,070 --> 00:01:01,990 om det er en røye, selv om det er erklært som en int. 24 00:01:01,990 --> 00:01:05,850 >> Nå, i beskrivelsen her, ser jeg at toupper konverterer bokstaven c til 25 00:01:05,850 --> 00:01:07,980 store bokstaver hvis mulig. 26 00:01:07,980 --> 00:01:11,520 Og under returverdi, ser jeg at verdien returneres, er det av 27 00:01:11,520 --> 00:01:15,320 konverterte brev, eller c, dersom konvertering var ikke mulig. 28 00:01:15,320 --> 00:01:17,120 Og det er den innsikt Jeg var ute etter. 29 00:01:17,120 --> 00:01:21,060 Hvis c er ikke, faktisk, en med små bokstaver brev, virker det som toupper vil 30 00:01:21,060 --> 00:01:23,450 bare sende det sammen uendret. 31 00:01:23,450 --> 00:01:25,750 >> Så la oss nå gå tilbake til min kode. 32 00:01:25,750 --> 00:01:30,480 Og la oss nå ta helheten av dette betinget blokk og erstatte den, 33 00:01:30,480 --> 00:01:40,240 ganske enkelt, med printf% c komma toupper av s brakett jeg lukker paren 34 00:01:40,240 --> 00:01:45,120 nære paren semikolon, og dermed som betyr at jeg ønsker å erstatte% c 35 00:01:45,120 --> 00:01:49,050 med kapitaliseringen av ith brev i s hvis ith 36 00:01:49,050 --> 00:01:50,530 brev i s er små bokstaver. 37 00:01:50,530 --> 00:01:53,710 Eller selv om det ikke er det, vil det være gått gjennom uendret. 38 00:01:53,710 --> 00:01:58,790 >> La oss nå kompilere dette programmet med gjøre capitalize2, og kjøre den med 39 00:01:58,790 --> 00:02:01,800 capitalize2, igjen, å skrive hei. 40 00:02:01,800 --> 00:02:03,800 Og ja, vi kommer tilbake med store bokstaver. 41 00:02:03,800 --> 00:02:05,090 La oss igjen skriver David. 42 00:02:05,090 --> 00:02:06,340 Og det også er store bokstaver. 43 00:02:06,340 --> 00:02:09,380