DAVID MALAN: Vediamo ora restringi questo programma un po 'più. Non sarebbe bello se potessi toupper maiuscola una lettera se minuscole, e se non minuscolo, passaggio attraverso invariato? In altre parole, potrei sostituire il mio if-else blocco con una singola chiamata a toupper? Beh, per rispondere a questa domanda, Mi piacerebbe meglio consultare il documentazione per toupper. Per fare ciò, vorrei aprire un terminale più grande finestra al di fuori di gedit, e quindi digitare uomo ToUpper, così a significare che mi piacerebbe aprire il La pagina man per i cosiddetti la toupper funzione. Su pressione del tasto invio, vedo una schermata simile a questa. E ora si accorgono che sembrano avere combinato la documentazione per toupper superiore a quella per tolower. Ma non importa. Noterete sotto la sinossi che Mi viene in mente che, anzi, per usare questa funzione, devo includere l' ctype.h file di intestazione. Sotto di esso, si vede che è toupper dichiarato come restituire un int e accettando un int, che è un po ' curioso, dal momento che finora, sono stato manipolando solo caratteri. Ma questo è OK. Si scopre che questo è solo un convenzione, e possiamo ancora usare come c se è un char, anche se è dichiarato come int. Ora, nella descrizione qui, vedo che toupper converte la lettera c per maiuscolo, se possibile. E sotto valore di ritorno, vedo che il valore restituito è quello della lettera convertito, oppure c, se la conversione non era possibile. E c'è l'intuizione Stavo cercando. Se c non è, infatti, un minuscolo lettera, sembra che toupper sarà semplicemente passarlo insieme invariato. Quindi cerchiamo di tornare ora al mio codice. E andiamo ora rimuovere la totalità dei questo blocco condizionale e sostituirlo, molto semplicemente, con printf% c virgola toupper della staffa s chiudo parentesi chiudi parentesi e virgola, quindi a significare che mi piacerebbe sostituire% c con la capitalizzazione del lettera esima in s se il esima lettera s è minuscolo. O anche se non lo è, sarà attraversato invariato. Vediamo ora compilare questo programma con fare capitalize2, ed eseguirlo con capitalize2, ancora una volta, digitando ciao. E infatti, torniamo maiuscolo. Facciamo di nuovo digitare David. E, anche, è maiuscola.