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