1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. Malan: Supoñamos que me gustaría para aplicar un programa que solicita 3 00:00:03,190 --> 00:00:06,650 o usuario a unha cadea e entón comeza para capitalizar a súa entrada, 4 00:00:06,650 --> 00:00:09,790 converter todas as letras minúsculas que escribir en maiúsculas. 5 00:00:09,790 --> 00:00:11,770 Ben, imos adiante e aplicar este programa. 6 00:00:11,770 --> 00:00:18,760 >> Imos primeiro inclúen cs50.h seguido por incluír stdio.h. 7 00:00:18,760 --> 00:00:23,990 E para que poidamos utilizar strlen, imos incluír string.h. 8 00:00:23,990 --> 00:00:29,860 >> Imos preto declarar principal void main como int e imos agora proceder para solicitar 9 00:00:29,860 --> 00:00:31,600 o usuario a unha cadea. 10 00:00:31,600 --> 00:00:34,840 Printf, imos levalos para algunha entrada. 11 00:00:34,840 --> 00:00:36,460 Agora imos declarar unha cadea - 12 00:00:36,460 --> 00:00:37,630 imos chamalo s - 13 00:00:37,630 --> 00:00:44,010 e almacenar nel o resultado da chamada a función GetString biblioteca CS50. 14 00:00:44,010 --> 00:00:48,850 >> Imos agora avanzar iterado sobre cada dos personaxes s, capitalizando 15 00:00:48,850 --> 00:00:50,650 todas as letras minúsculas que vemos. 16 00:00:50,650 --> 00:00:53,630 Para int, eu recibín 0. 17 00:00:53,630 --> 00:00:58,780 Imos tamén declarar n como igual a a lonxitude da corda de s para que poidamos 18 00:00:58,780 --> 00:01:03,590 iteración i ata n, a lonxitude de s, e en cada 19 00:01:03,590 --> 00:01:05,760 i incremento iteración. 20 00:01:05,760 --> 00:01:09,970 >> E, a continuación, dentro dese loop, imos primeiro cheque é letra actual - 21 00:01:09,970 --> 00:01:12,270 letra i da s, por así dicir - 22 00:01:12,270 --> 00:01:14,170 unha letra minúscula. 23 00:01:14,170 --> 00:01:23,090 Se s soporte i é maior o igual en minúscula unha, e é menos 24 00:01:23,090 --> 00:01:26,900 que ou igual a z minúscula - 25 00:01:26,900 --> 00:01:30,860 Agora, se quere converter un minúsculo letra en maiúscula, lembre-se primeiro de que 26 00:01:30,860 --> 00:01:35,810 en ASCII un minúsculo un é de 97 e unha letra maiúscula A é 65. 27 00:01:35,810 --> 00:01:41,020 Mentres tanto, unha minúscula b é de 98, e un B maiúsculo é 66. 28 00:01:41,020 --> 00:01:44,180 >> Continuamos a ollar a este estándar, imos ver que a minúscula 29 00:01:44,180 --> 00:01:49,240 letras son sempre 32 valores máis altos do que as letras maiúsculas. 30 00:01:49,240 --> 00:01:53,490 Polo tanto, se queremos converter e minúsculas en maiúsculas, que debería 31 00:01:53,490 --> 00:01:57,210 suficiente, realmente, para restar 32 desde a entrada do usuario. 32 00:01:57,210 --> 00:02:01,330 Ou, máis xeralmente, só restar este diferenza entre un pequeno e un 33 00:02:01,330 --> 00:02:02,310 Capital A. 34 00:02:02,310 --> 00:02:03,410 >> Como expresar isto? 35 00:02:03,410 --> 00:02:04,640 Ben, imos facelo no código. 36 00:02:04,640 --> 00:02:09,960 Printf, multimedia, pecha comiñas "% c" para imprimir o carácter actual, seguido por 37 00:02:09,960 --> 00:02:18,500 imprimir o que está en s soporte i menos o resultado de facer unha minúscula 38 00:02:18,500 --> 00:02:22,660 menos maiúsculas Un punto e coma. 39 00:02:22,660 --> 00:02:27,010 Noutras palabras, este parénteses expresión, algo menos de un gran A, é 40 00:02:27,010 --> 00:02:29,360 vai voltar a nós no Ao final do día 32. 41 00:02:29,360 --> 00:02:31,230 Pero eu non teño que lembrar que é 32. 42 00:02:31,230 --> 00:02:34,150 Podo facer que o ordenador para descubrir que a diferenza entre minúsculas 43 00:02:34,150 --> 00:02:35,990 un e maiúscula é. 44 00:02:35,990 --> 00:02:39,610 >> Mentres tanto, xa que sei que diferenza, Podo restar s 45 00:02:39,610 --> 00:02:43,710 soporte de i, que terá o que hai de presuntamente unha letra minúscula a un 46 00:02:43,710 --> 00:02:48,100 menor valor, ou sexa, un valor que mapea a un equivalente en maiúsculas. 47 00:02:48,100 --> 00:02:51,240 Imos agora gardar, compilar e executar este programa. 48 00:02:51,240 --> 00:02:57,760 Fai capitalizar barra dot capitalizar. 49 00:02:57,760 --> 00:03:01,290 E a miña entrada será Olá 50 00:03:01,290 --> 00:03:02,920 E aí temos, Olá 51 00:03:02,920 --> 00:03:05,570 >> Agora o meu alerta, en realidade, é algo feo, porque temos 52 00:03:05,570 --> 00:03:07,810 omitido algo de impresión. 53 00:03:07,810 --> 00:03:09,370 E imos volver e engadir iso. 54 00:03:09,370 --> 00:03:12,890 Na parte inferior do programa, Estou moi simplemente, e en gran parte para 55 00:03:12,890 --> 00:03:18,440 finalidade estética, indo a engadir printf, cita, pecha comiñas barra invertida n. 56 00:03:18,440 --> 00:03:22,330 Imos gardar de novo este ficheiro, recompilar, reprise. 57 00:03:22,330 --> 00:03:28,090 >> Fai capitalizar, barra dot capitalizar. 58 00:03:28,090 --> 00:03:32,540 Unha vez máis, para a entrada vou dar "Ola" en todas as minúsculas e agora prema Intro, 59 00:03:32,540 --> 00:03:34,550 e "Ola", moito máis limpa impreso. 60 00:03:34,550 --> 00:03:36,432