1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. MALAN: Suponha que eu gostaria para implementar um programa que solicita 3 00:00:03,190 --> 00:00:06,650 o usuário para uma string e então começa para capitalizar sua entrada, 4 00:00:06,650 --> 00:00:09,790 converter todas as letras minúsculas que digitar em maiúsculas. 5 00:00:09,790 --> 00:00:11,770 Bem, vamos em frente e implementar esse programa. 6 00:00:11,770 --> 00:00:18,760 >> Vamos primeiro incluem cs50.h seguido por incluir stdio.h. 7 00:00:18,760 --> 00:00:23,990 E para que possamos usar strlen, vamos incluir string.h. 8 00:00:23,990 --> 00:00:29,860 >> Vamos próximo declarar principal void main como int e vamos agora proceder para solicitar 9 00:00:29,860 --> 00:00:31,600 o usuário para uma string. 10 00:00:31,600 --> 00:00:34,840 Printf, vamos levá-los para alguma entrada. 11 00:00:34,840 --> 00:00:36,460 Agora vamos declarar uma string - 12 00:00:36,460 --> 00:00:37,630 vamos chamá-lo s - 13 00:00:37,630 --> 00:00:44,010 e armazenar nele o resultado da chamada a função GetString biblioteca CS50. 14 00:00:44,010 --> 00:00:48,850 >> Vamos agora avançar para iterar sobre cada dos personagens 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 recebo 0. 17 00:00:53,630 --> 00:00:58,780 Vamos também declarar n como sendo igual a o comprimento da corda de s para que possamos 18 00:00:58,780 --> 00:01:03,590 iteração de i até n, o comprimento de s, e em cada 19 00:01:03,590 --> 00:01:05,760 i incremento iteração. 20 00:01:05,760 --> 00:01:09,970 >> E, em seguida, dentro desse loop, vamos primeiro cheque é a letra atual - 21 00:01:09,970 --> 00:01:12,270 a letra i da s, por assim dizer - 22 00:01:12,270 --> 00:01:14,170 uma letra minúscula. 23 00:01:14,170 --> 00:01:23,090 Se s suporte i é maior ou igual para minúsculas uma, e é menos 24 00:01:23,090 --> 00:01:26,900 que ou igual a z minúsculas - 25 00:01:26,900 --> 00:01:30,860 Agora, se quiser converter um minúsculo letra em maiúscula, lembre-se primeiro de que 26 00:01:30,860 --> 00:01:35,810 em ASCII um minúsculo um é de 97 e uma letra maiúscula A é 65. 27 00:01:35,810 --> 00:01:41,020 Enquanto isso, uma minúscula b é de 98, e um B maiúsculo é 66. 28 00:01:41,020 --> 00:01:44,180 >> Se continuarmos a olhar para esse padrão, vamos ver que a minúscula 29 00:01:44,180 --> 00:01:49,240 letras são sempre 32 valores mais elevados do que as letras maiúsculas. 30 00:01:49,240 --> 00:01:53,490 Portanto, se queremos converter de minúsculas em maiúsculas, que deveria 31 00:01:53,490 --> 00:01:57,210 suficiente, realmente, para subtrair 32 a partir da entrada do usuário. 32 00:01:57,210 --> 00:02:01,330 Ou, mais geralmente, apenas subtrair esse diferença entre um minúsculo e uma 33 00:02:01,330 --> 00:02:02,310 Capital A. 34 00:02:02,310 --> 00:02:03,410 >> Como expressar isso? 35 00:02:03,410 --> 00:02:04,640 Bem, vamos fazê-lo no código. 36 00:02:04,640 --> 00:02:09,960 Printf, citações, fecha aspas "% c" para impressão o caráter atual, seguido por 37 00:02:09,960 --> 00:02:18,500 imprimir o que está em s suporte i menos o resultado de fazer uma minúscula 38 00:02:18,500 --> 00:02:22,660 menos maiúsculas Um ponto e vírgula. 39 00:02:22,660 --> 00:02:27,010 Em outras palavras, este parêntesis expressão, pouco menos de um grande A, é 40 00:02:27,010 --> 00:02:29,360 vai voltar para nós no No final do dia 32. 41 00:02:29,360 --> 00:02:31,230 Mas eu não tenho que lembrar que é 32. 42 00:02:31,230 --> 00:02:34,150 Eu posso permitir que o computador para descobrir qual a diferença entre minúsculas 43 00:02:34,150 --> 00:02:35,990 um e maiúsculo é. 44 00:02:35,990 --> 00:02:39,610 >> Enquanto isso, uma vez que eu sei que diferença, Eu posso subtrair s 45 00:02:39,610 --> 00:02:43,710 suporte de i, que terá o que há de presumivelmente uma letra minúscula a um 46 00:02:43,710 --> 00:02:48,100 menor valor, ou seja, um valor que mapeia para um equivalente em maiúsculas. 47 00:02:48,100 --> 00:02:51,240 Vamos agora salvar, compilar e executar este programa. 48 00:02:51,240 --> 00:02:57,760 Faça capitalizar barra dot capitalizados. 49 00:02:57,760 --> 00:03:01,290 E a minha 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, na verdade, é um pouco feio, porque nós temos 52 00:03:05,570 --> 00:03:07,810 omitido um pouco de impressão. 53 00:03:07,810 --> 00:03:09,370 E vamos voltar e adicionar isso. 54 00:03:09,370 --> 00:03:12,890 Na parte inferior do programa, Estou muito simplesmente, e em grande parte para 55 00:03:12,890 --> 00:03:18,440 finalidade estética, indo para adicionar printf, citação, fecha aspas barra invertida n. 56 00:03:18,440 --> 00:03:22,330 Vamos salvar novamente este arquivo, recompilar, reprise. 57 00:03:22,330 --> 00:03:28,090 >> Faça capitalizar, barra dot capitalizar. 58 00:03:28,090 --> 00:03:32,540 Mais uma vez, para a entrada eu vou dar "Olá" em todas as minúsculas e agora pressione Enter, 59 00:03:32,540 --> 00:03:34,550 e "Olá", muito mais limpa impresso. 60 00:03:34,550 --> 00:03:36,432