>> 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.