DAVID MALAN: Vamos agora refinar este programa um pouco mais. Não seria bom se pudesse toupper uma letra em maiúscula, se minúsculas e se não minúsculas, passe através inalterado? Em outras palavras, eu poderia substituir meu se-else bloco com um única chamada para toupper? Bem, para responder a esta pergunta, É melhor eu consultar o documentação para toupper. Para fazê-lo, deixe-me abrir um terminal maior janela fora do gedit, e em seguida, digite o homem toupper, assim o que significa que eu gostaria de abrir o chamados página man o toupper função. Ao pressionar Enter, eu vejo uma tela como esta. E agora percebe que eles parecem ter combinado a documentação para toupper superior, com que, para tolower. Mas não importa. Você notará sob a sinopse que Lembro-me que, na verdade, para usar esta função, devo incluir o ctype.h arquivo de cabeçalho. Abaixo disso, você vê que é toupper declaradas como retornando um int e aceitar um int, que é um pouco curioso, uma vez que, até agora, eu estive apenas manipular caracteres. Mas isso é OK. Acontece que este é apenas um convenção, e ainda podemos usar como c que seja um char, mesmo que ele é declarado como um int. Agora, na descrição aqui, vejo que toupper converte a letra c para maiúsculas, se possível. E sob valor de retorno, eu vejo que o valor devolvido é o da carta convertida, ou c, se o conversão não foi possível. E há a visão Eu estava procurando. Se c não é, de fato, um minúsculo carta, parece que vai toupper simplesmente passá-lo inalterado. Então, vamos agora voltar ao meu código. E vamos agora remover a totalidade do este bloco condicional e substituí-lo, pura e simplesmente, com printf% c vírgula toupper de suporte s i fechar parêntese paren perto e vírgula, assim o que significa que eu gostaria de substituir% c com a capitalização da carta om em s se o om letra s está minúsculas. Ou até mesmo se não for, será passado através inalterada. Vamos agora compilar este programa com fazer capitalize2, e executá-lo com capitalize2, novamente, digitando Olá. E, de fato, nós recebemos de volta em maiúsculas. Vamos novamente digite David. E, também, é maiúscula.