1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: Vamos agora refinar este programa um pouco mais. 3 00:00:02,240 --> 00:00:06,510 Não seria bom se pudesse toupper uma letra em maiúscula, se minúsculas e 4 00:00:06,510 --> 00:00:08,880 se não minúsculas, passe através inalterado? 5 00:00:08,880 --> 00:00:12,110 Em outras palavras, eu poderia substituir meu se-else bloco com um 6 00:00:12,110 --> 00:00:13,960 única chamada para toupper? 7 00:00:13,960 --> 00:00:16,000 >> Bem, para responder a esta pergunta, É melhor eu consultar o 8 00:00:16,000 --> 00:00:17,630 documentação para toupper. 9 00:00:17,630 --> 00:00:22,100 Para fazê-lo, deixe-me abrir um terminal maior janela fora do gedit, e 10 00:00:22,100 --> 00:00:26,060 em seguida, digite o homem toupper, assim o que significa que eu gostaria de abrir o 11 00:00:26,060 --> 00:00:29,060 chamados página man o toupper função. 12 00:00:29,060 --> 00:00:31,580 Ao pressionar Enter, eu vejo uma tela como esta. 13 00:00:31,580 --> 00:00:34,750 E agora percebe que eles parecem ter combinado a documentação para toupper 14 00:00:34,750 --> 00:00:37,010 superior, com que, para tolower. 15 00:00:37,010 --> 00:00:38,010 Mas não importa. 16 00:00:38,010 --> 00:00:41,640 >> Você notará sob a sinopse que Lembro-me que, na verdade, para usar esta 17 00:00:41,640 --> 00:00:45,220 função, devo incluir o ctype.h arquivo de cabeçalho. 18 00:00:45,220 --> 00:00:49,520 Abaixo disso, você vê que é toupper declaradas como retornando um int e 19 00:00:49,520 --> 00:00:52,720 aceitar um int, que é um pouco curioso, uma vez que, até agora, eu estive 20 00:00:52,720 --> 00:00:54,370 apenas manipular caracteres. 21 00:00:54,370 --> 00:00:55,310 Mas isso é OK. 22 00:00:55,310 --> 00:00:59,070 Acontece que este é apenas um convenção, e ainda podemos usar como c 23 00:00:59,070 --> 00:01:01,990 que seja um char, mesmo que ele é declarado como um int. 24 00:01:01,990 --> 00:01:05,850 >> Agora, na descrição aqui, vejo que toupper converte a letra c para 25 00:01:05,850 --> 00:01:07,980 maiúsculas, se possível. 26 00:01:07,980 --> 00:01:11,520 E sob valor de retorno, eu vejo que o valor devolvido é o da 27 00:01:11,520 --> 00:01:15,320 carta convertida, ou c, se o conversão não foi possível. 28 00:01:15,320 --> 00:01:17,120 E há a visão Eu estava procurando. 29 00:01:17,120 --> 00:01:21,060 Se c não é, de fato, um minúsculo carta, parece que vai toupper 30 00:01:21,060 --> 00:01:23,450 simplesmente passá-lo inalterado. 31 00:01:23,450 --> 00:01:25,750 >> Então, vamos agora voltar ao meu código. 32 00:01:25,750 --> 00:01:30,480 E vamos agora remover a totalidade do este bloco condicional e substituí-lo, 33 00:01:30,480 --> 00:01:40,240 pura e simplesmente, com printf% c vírgula toupper de suporte s i fechar parêntese 34 00:01:40,240 --> 00:01:45,120 paren perto e vírgula, assim o que significa que eu gostaria de substituir% c 35 00:01:45,120 --> 00:01:49,050 com a capitalização da carta om em s se o om 36 00:01:49,050 --> 00:01:50,530 letra s está minúsculas. 37 00:01:50,530 --> 00:01:53,710 Ou até mesmo se não for, será passado através inalterada. 38 00:01:53,710 --> 00:01:58,790 >> Vamos agora compilar este programa com fazer capitalize2, e executá-lo com 39 00:01:58,790 --> 00:02:01,800 capitalize2, novamente, digitando Olá. 40 00:02:01,800 --> 00:02:03,800 E, de fato, nós recebemos de volta em maiúsculas. 41 00:02:03,800 --> 00:02:05,090 Vamos novamente digite David. 42 00:02:05,090 --> 00:02:06,340 E, também, é maiúscula. 43 00:02:06,340 --> 00:02:09,380