1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID Malan: Imos agora refinar este programa un pouco máis. 3 00:00:02,240 --> 00:00:06,510 Non sería bo se puidese toupper unha letra en maiúscula, se minúsculas e 4 00:00:06,510 --> 00:00:08,880 se non minúsculas, pase través inalterada? 5 00:00:08,880 --> 00:00:12,110 Noutras palabras, eu podería substituír meu se else bloque cun 6 00:00:12,110 --> 00:00:13,960 única chamada a toupper? 7 00:00:13,960 --> 00:00:16,000 >> Ben, para responder a esta pregunta, É mellor eu consultar o 8 00:00:16,000 --> 00:00:17,630 documentación para toupper. 9 00:00:17,630 --> 00:00:22,100 Para facelo, déixeme abrir un terminal máis ventá fóra do gedit, e 10 00:00:22,100 --> 00:00:26,060 a continuación, escriba o home toupper, así o que significa que eu quere abrir o 11 00:00:26,060 --> 00:00:29,060 chamados páxina man o toupper función. 12 00:00:29,060 --> 00:00:31,580 Premendo Intro, eu vexo unha pantalla como esta. 13 00:00:31,580 --> 00:00:34,750 E agora entende que eles parecen ter combinado a documentación para toupper 14 00:00:34,750 --> 00:00:37,010 superior, con que, para tolower. 15 00:00:37,010 --> 00:00:38,010 Pero non importa. 16 00:00:38,010 --> 00:00:41,640 >> Notará baixo a sinopse que Lembro que, en realidade, para utilizar esta 17 00:00:41,640 --> 00:00:45,220 función, debo incluír o ctype.h ficheiro de cabeceira. 18 00:00:45,220 --> 00:00:49,520 Debaixo diso, vostede ve que é toupper declaradas como retornando un int e 19 00:00:49,520 --> 00:00:52,720 aceptar un int, que é un pouco curioso, xa que, ata agora, eu estiven 20 00:00:52,720 --> 00:00:54,370 só manipular caracteres. 21 00:00:54,370 --> 00:00:55,310 Pero iso é OK. 22 00:00:55,310 --> 00:00:59,070 Acontece que este é só un convención, e aínda podemos utilizar como c 23 00:00:59,070 --> 00:01:01,990 que sexa un char, aínda que é declarado como un int. 24 00:01:01,990 --> 00:01:05,850 >> Agora, na descrición aquí, vexo que toupper converte a letra c para 25 00:01:05,850 --> 00:01:07,980 maiúsculas, se é posible. 26 00:01:07,980 --> 00:01:11,520 E baixo valor de retorno, eu vexo que o valor devolto é o da 27 00:01:11,520 --> 00:01:15,320 carta converteuse, ou c, se o conversión non se pode. 28 00:01:15,320 --> 00:01:17,120 E hai a visión Eu estaba a buscar. 29 00:01:17,120 --> 00:01:21,060 Se c non é, de feito, unha minúscula carta, parece que vai toupper 30 00:01:21,060 --> 00:01:23,450 simplemente pasalo inalterado. 31 00:01:23,450 --> 00:01:25,750 >> Entón, imos agora volver ao meu código. 32 00:01:25,750 --> 00:01:30,480 E imos agora eliminar a totalidade do este bloque condicional e substituílo, 33 00:01:30,480 --> 00:01:40,240 pura e simplemente, con printf% c coma toupper de soporte s i pechar parénteses 34 00:01:40,240 --> 00:01:45,120 paren preto e coma, así o que significa que me gustaría substituír% c 35 00:01:45,120 --> 00:01:49,050 coa capitalización da carta om en s se o om 36 00:01:49,050 --> 00:01:50,530 letra s minúsculas. 37 00:01:50,530 --> 00:01:53,710 Ou incluso se non é, será pasado a través inalterada. 38 00:01:53,710 --> 00:01:58,790 >> Imos agora compilar este programa coa facer capitalize2, e executa-lo con 39 00:01:58,790 --> 00:02:01,800 capitalize2, de novo, escribindo Olá 40 00:02:01,800 --> 00:02:03,800 E, de feito, recibimos de volta en maiúsculas. 41 00:02:03,800 --> 00:02:05,090 Imos de novo escriba David. 42 00:02:05,090 --> 00:02:06,340 E, tamén, é maiúscula. 43 00:02:06,340 --> 00:02:09,380