1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: Vediamo ora restringi questo programma un po 'più. 3 00:00:02,240 --> 00:00:06,510 Non sarebbe bello se potessi toupper maiuscola una lettera se minuscole, e 4 00:00:06,510 --> 00:00:08,880 se non minuscolo, passaggio attraverso invariato? 5 00:00:08,880 --> 00:00:12,110 In altre parole, potrei sostituire il mio if-else blocco con una 6 00:00:12,110 --> 00:00:13,960 singola chiamata a toupper? 7 00:00:13,960 --> 00:00:16,000 >> Beh, per rispondere a questa domanda, Mi piacerebbe meglio consultare il 8 00:00:16,000 --> 00:00:17,630 documentazione per toupper. 9 00:00:17,630 --> 00:00:22,100 Per fare ciò, vorrei aprire un terminale più grande finestra al di fuori di gedit, e 10 00:00:22,100 --> 00:00:26,060 quindi digitare uomo ToUpper, così a significare che mi piacerebbe aprire il 11 00:00:26,060 --> 00:00:29,060 La pagina man per i cosiddetti la toupper funzione. 12 00:00:29,060 --> 00:00:31,580 Su pressione del tasto invio, vedo una schermata simile a questa. 13 00:00:31,580 --> 00:00:34,750 E ora si accorgono che sembrano avere combinato la documentazione per toupper 14 00:00:34,750 --> 00:00:37,010 superiore a quella per tolower. 15 00:00:37,010 --> 00:00:38,010 Ma non importa. 16 00:00:38,010 --> 00:00:41,640 >> Noterete sotto la sinossi che Mi viene in mente che, anzi, per usare questa 17 00:00:41,640 --> 00:00:45,220 funzione, devo includere l' ctype.h file di intestazione. 18 00:00:45,220 --> 00:00:49,520 Sotto di esso, si vede che è toupper dichiarato come restituire un int e 19 00:00:49,520 --> 00:00:52,720 accettando un int, che è un po ' curioso, dal momento che finora, sono stato 20 00:00:52,720 --> 00:00:54,370 manipolando solo caratteri. 21 00:00:54,370 --> 00:00:55,310 Ma questo è OK. 22 00:00:55,310 --> 00:00:59,070 Si scopre che questo è solo un convenzione, e possiamo ancora usare come c 23 00:00:59,070 --> 00:01:01,990 se è un char, anche se è dichiarato come int. 24 00:01:01,990 --> 00:01:05,850 >> Ora, nella descrizione qui, vedo che toupper converte la lettera c per 25 00:01:05,850 --> 00:01:07,980 maiuscolo, se possibile. 26 00:01:07,980 --> 00:01:11,520 E sotto valore di ritorno, vedo che il valore restituito è quello della 27 00:01:11,520 --> 00:01:15,320 lettera convertito, oppure c, se la conversione non era possibile. 28 00:01:15,320 --> 00:01:17,120 E c'è l'intuizione Stavo cercando. 29 00:01:17,120 --> 00:01:21,060 Se c non è, infatti, un minuscolo lettera, sembra che toupper sarà 30 00:01:21,060 --> 00:01:23,450 semplicemente passarlo insieme invariato. 31 00:01:23,450 --> 00:01:25,750 >> Quindi cerchiamo di tornare ora al mio codice. 32 00:01:25,750 --> 00:01:30,480 E andiamo ora rimuovere la totalità dei questo blocco condizionale e sostituirlo, 33 00:01:30,480 --> 00:01:40,240 molto semplicemente, con printf% c virgola toupper della staffa s chiudo parentesi 34 00:01:40,240 --> 00:01:45,120 chiudi parentesi e virgola, quindi a significare che mi piacerebbe sostituire% c 35 00:01:45,120 --> 00:01:49,050 con la capitalizzazione del lettera esima in s se il esima 36 00:01:49,050 --> 00:01:50,530 lettera s è minuscolo. 37 00:01:50,530 --> 00:01:53,710 O anche se non lo è, sarà attraversato invariato. 38 00:01:53,710 --> 00:01:58,790 >> Vediamo ora compilare questo programma con fare capitalize2, ed eseguirlo con 39 00:01:58,790 --> 00:02:01,800 capitalize2, ancora una volta, digitando ciao. 40 00:02:01,800 --> 00:02:03,800 E infatti, torniamo maiuscolo. 41 00:02:03,800 --> 00:02:05,090 Facciamo di nuovo digitare David. 42 00:02:05,090 --> 00:02:06,340 E, anche, è maiuscola. 43 00:02:06,340 --> 00:02:09,380