DAVID Malan: Imos agora refinar este programa un pouco máis. Non sería bo se puidese toupper unha letra en maiúscula, se minúsculas e se non minúsculas, pase través inalterada? Noutras palabras, eu podería substituír meu se else bloque cun única chamada a toupper? 

Ben, para responder a esta pregunta, É mellor eu consultar o documentación para toupper. Para facelo, déixeme abrir un terminal máis ventá fóra do gedit, e a continuación, escriba o home toupper, así o que significa que eu quere abrir o chamados páxina man o toupper función. Premendo Intro, eu vexo unha pantalla como esta. E agora entende que eles parecen ter combinado a documentación para toupper superior, con que, para tolower. Pero non importa. 

Notará baixo a sinopse que Lembro que, en realidade, para utilizar esta función, debo incluír o ctype.h ficheiro de cabeceira. Debaixo diso, vostede ve que é toupper declaradas como retornando un int e aceptar un int, que é un pouco curioso, xa que, ata agora, eu estiven só manipular caracteres. Pero iso é OK. Acontece que este é só un convención, e aínda podemos utilizar como c que sexa un char, aínda que é declarado como un int. 

Agora, na descrición aquí, vexo que toupper converte a letra c para maiúsculas, se é posible. E baixo valor de retorno, eu vexo que o valor devolto é o da carta converteuse, ou c, se o conversión non se pode. E hai a visión Eu estaba a buscar. Se c non é, de feito, unha minúscula carta, parece que vai toupper simplemente pasalo inalterado. 

Entón, imos agora volver ao meu código. E imos agora eliminar a totalidade do este bloque condicional e substituílo, pura e simplemente, con printf% c coma toupper de soporte s i pechar parénteses paren preto e coma, así o que significa que me gustaría substituír% c coa capitalización da carta om en s se o om letra s minúsculas. Ou incluso se non é, será pasado a través inalterada. 

Imos agora compilar este programa coa facer capitalize2, e executa-lo con capitalize2, de novo, escribindo Olá E, de feito, recibimos de volta en maiúsculas. Imos de novo escriba David. E, tamén, é maiúscula.