1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID MALAN: Ahora vamos a refinar este programa un poco más lejos. 3 00:00:02,240 --> 00:00:06,510 ¿No sería bueno si pudiera toupper una letra en mayúsculas, si minúscula y 4 00:00:06,510 --> 00:00:08,880 si no es en minúsculas, pase a través de sin cambios? 5 00:00:08,880 --> 00:00:12,110 En otras palabras, ¿podría reemplazar mi if-else bloque con una 6 00:00:12,110 --> 00:00:13,960 sola llamada a toupper? 7 00:00:13,960 --> 00:00:16,000 >> Bueno, para responder a esta pregunta, Será mejor que consultar a los 8 00:00:16,000 --> 00:00:17,630 documentación para toupper. 9 00:00:17,630 --> 00:00:22,100 Para ello, vamos a abrir una terminal más grande fuera de la ventana de gedit, y 10 00:00:22,100 --> 00:00:26,060 a continuación, escriba el hombre toupper, con lo que lo que significa que me gustaría abrir el 11 00:00:26,060 --> 00:00:29,060 denominada página de manual de la toupper función. 12 00:00:29,060 --> 00:00:31,580 Al oprimir la tecla Enter, veo una pantalla como esta. 13 00:00:31,580 --> 00:00:34,750 Y ahora cuenta de que parece que tienen combinado la 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 no importa. 16 00:00:38,010 --> 00:00:41,640 >> Se dará cuenta de que en virtud de la sinopsis Me acuerdo de que, en efecto, para utilizar esta 17 00:00:41,640 --> 00:00:45,220 función, que debe incluir la ctype.h archivo de cabecera. 18 00:00:45,220 --> 00:00:49,520 Debajo de eso, se ve que es toupper declarado como devolver un int y 19 00:00:49,520 --> 00:00:52,720 aceptar un int, que es un poco curioso, ya que hasta ahora, he estado 20 00:00:52,720 --> 00:00:54,370 manipular sólo caracteres. 21 00:00:54,370 --> 00:00:55,310 Pero eso está bien. 22 00:00:55,310 --> 00:00:59,070 Resulta que esto es sólo una convención, y todavía podemos utilizar como c 23 00:00:59,070 --> 00:01:01,990 aunque es un char, a pesar de que está declarada como int. 24 00:01:01,990 --> 00:01:05,850 >> Ahora, en la descripción aquí, veo que toupper convierte la letra c a 25 00:01:05,850 --> 00:01:07,980 mayúsculas si es posible. 26 00:01:07,980 --> 00:01:11,520 Y bajo valor de retorno, veo que el valor devuelto es el de la 27 00:01:11,520 --> 00:01:15,320 carta convertida, oc, si el conversión no era posible. 28 00:01:15,320 --> 00:01:17,120 Y ahí está la visión Que estaba buscando. 29 00:01:17,120 --> 00:01:21,060 Si c no es, de hecho, una minúscula carta, parece que se toupper 30 00:01:21,060 --> 00:01:23,450 simplemente pasarlo adelante sin cambios. 31 00:01:23,450 --> 00:01:25,750 >> Así que ahora vamos a volver a mi código. 32 00:01:25,750 --> 00:01:30,480 Y ahora vamos a eliminar la totalidad de este bloque condicional y reemplazarlo, 33 00:01:30,480 --> 00:01:40,240 simplemente, con printf% c comas toupper de s abrazadera cierro paren 34 00:01:40,240 --> 00:01:45,120 cerca paren punto y coma, por lo tanto lo que significa que me gustaría reemplazar% c 35 00:01:45,120 --> 00:01:49,050 con la capitalización de la ésima letra en s si la i-ésima 36 00:01:49,050 --> 00:01:50,530 carta de s está en minúsculas. 37 00:01:50,530 --> 00:01:53,710 O incluso si no lo es, será pasado a través sin cambios. 38 00:01:53,710 --> 00:01:58,790 >> Ahora vamos a compilar este programa con hacer capitalize2, y ejecutarlo con 39 00:01:58,790 --> 00:02:01,800 capitalize2, de nuevo, al escribir hola. 40 00:02:01,800 --> 00:02:03,800 Y, en efecto, volvamos mayúsculas. 41 00:02:03,800 --> 00:02:05,090 Vamos de nuevo Tipo David. 42 00:02:05,090 --> 00:02:06,340 Y es, también, es mayúscula. 43 00:02:06,340 --> 00:02:09,380