1 00:00:00,000 --> 00:00:00,720 2 00:00:00,720 --> 00:00:03,190 >> DAVID J. Malan: Supposons que je voudrais de mettre en œuvre un programme qui invite 3 00:00:03,190 --> 00:00:06,650 l'utilisateur pour une chaîne et procède ensuite de capitaliser leur entrée, 4 00:00:06,650 --> 00:00:09,790 convertir des lettres minuscules qu'ils tapent en majuscules. 5 00:00:09,790 --> 00:00:11,770 Eh bien, allons-y et mettre en œuvre ce programme. 6 00:00:11,770 --> 00:00:18,760 >> Incluons premier cs50.h suivi par incluent stdio.h. 7 00:00:18,760 --> 00:00:23,990 Et afin que nous puissions utiliser strlen, nous allons inclure string.h. 8 00:00:23,990 --> 00:00:29,860 >> Disons prochaine déclarent principal void main int et nous allons procéder maintenant à inciter 9 00:00:29,860 --> 00:00:31,600 l'utilisateur pour une chaîne. 10 00:00:31,600 --> 00:00:34,840 Printf, nous allons les inciter pour une entrée. 11 00:00:34,840 --> 00:00:36,460 Maintenant, nous allons déclarer une chaîne - 12 00:00:36,460 --> 00:00:37,630 nous l'appellerons s - 13 00:00:37,630 --> 00:00:44,010 et stocker en elle le résultat de l'appel la fonction de bibliothèque CS50 GetString. 14 00:00:44,010 --> 00:00:48,850 >> Passons maintenant à itérer sur chaque les caractères de s, en capitalisant 15 00:00:48,850 --> 00:00:50,650 des lettres minuscules que nous voyons. 16 00:00:50,650 --> 00:00:53,630 Pour int, je reçois 0. 17 00:00:53,630 --> 00:00:58,780 Déclarons également n comme étant égale à la longueur de la chaîne de sorte que nous pouvons 18 00:00:58,780 --> 00:01:03,590 itérer de i jusqu'à n, le longueur de l'art, et sur chaque 19 00:01:03,590 --> 00:01:05,760 incrément d'itération i. 20 00:01:05,760 --> 00:01:09,970 >> Et puis à l'intérieur de cette boucle, nous allons premier chèque est la lettre actuelle - 21 00:01:09,970 --> 00:01:12,270 la lettre i-ème de s, pour ainsi dire - 22 00:01:12,270 --> 00:01:14,170 une lettre minuscules. 23 00:01:14,170 --> 00:01:23,090 Si le support s i est supérieur ou égal en minuscules un, et il est moins 24 00:01:23,090 --> 00:01:26,900 supérieure ou égale à z minuscule - 25 00:01:26,900 --> 00:01:30,860 Maintenant, si nous voulons convertir un minuscule lettre en majuscule, rappelons d'abord que 26 00:01:30,860 --> 00:01:35,810 en ASCII minuscule est un 97 et un A majuscule est de 65. 27 00:01:35,810 --> 00:01:41,020 Pendant ce temps, un b minuscule est de 98, et un B majuscule est de 66. 28 00:01:41,020 --> 00:01:44,180 >> Si nous continuons à chercher à ce modèle, nous verrons que la minuscule 29 00:01:44,180 --> 00:01:49,240 lettres sont toujours 32 valeurs supérieures que les lettres majuscules. 30 00:01:49,240 --> 00:01:53,490 Donc, si nous voulons convertir en minuscules en majuscules, il devrait 31 00:01:53,490 --> 00:01:57,210 suffire, vraiment, à soustraire 32 de l'entrée de l'utilisateur. 32 00:01:57,210 --> 00:02:01,330 Ou, plus généralement, juste soustraire que différence entre un a minuscule et un 33 00:02:01,330 --> 00:02:02,310 grand A. 34 00:02:02,310 --> 00:02:03,410 >> Comment exprimer cela? 35 00:02:03,410 --> 00:02:04,640 Eh bien, faisons-le dans le code. 36 00:02:04,640 --> 00:02:09,960 Printf, entre guillemets "% c" pour impression le caractère courant, suivi par 37 00:02:09,960 --> 00:02:18,500 impression tout ce qui est dans l support i moins le résultat de faire une minuscule 38 00:02:18,500 --> 00:02:22,660 moins majuscules un point-virgule. 39 00:02:22,660 --> 00:02:27,010 En d'autres termes, cette parenthèse expression, peu un moins grand A, est 40 00:02:27,010 --> 00:02:29,360 va nous revenir à la fin du jour 32. 41 00:02:29,360 --> 00:02:31,230 Mais je n'ai pas de souvenir que c'est 32. 42 00:02:31,230 --> 00:02:34,150 Je ne peux permettre à l'ordinateur de comprendre quelle est la différence entre les minuscules 43 00:02:34,150 --> 00:02:35,990 une capitale et un est. 44 00:02:35,990 --> 00:02:39,610 >> Pendant ce temps, une fois que je sais que la différence, Je peux soustraire de s 45 00:02:39,610 --> 00:02:43,710 support i, qui aura ce qui est probablement une lettre minuscule à une 46 00:02:43,710 --> 00:02:48,100 valeur plus basse, à savoir une valeur qui mappe sur un équivalent en majuscule. 47 00:02:48,100 --> 00:02:51,240 Voyons maintenant enregistrer, compiler, et exécuter ce programme. 48 00:02:51,240 --> 00:02:57,760 Faire capitaliser point barre capitalisés. 49 00:02:57,760 --> 00:03:01,290 Et mon entrée sera bonjour. 50 00:03:01,290 --> 00:03:02,920 Et là, nous avons, bonjour. 51 00:03:02,920 --> 00:03:05,570 >> Maintenant, mon invite, certes, est un peu moche, parce que nous avons 52 00:03:05,570 --> 00:03:07,810 omis un peu de l'impression. 53 00:03:07,810 --> 00:03:09,370 Et revenons et ajouter que. 54 00:03:09,370 --> 00:03:12,890 Au bas de ce programme, Je suis très simplement, et en grande partie pour 55 00:03:12,890 --> 00:03:18,440 but esthétique, va ajouter printf, entre guillemets barre oblique inverse n. 56 00:03:18,440 --> 00:03:22,330 Disons réenregistrer ce fichier, recompiler, reprise. 57 00:03:22,330 --> 00:03:28,090 >> Faire tirer, barre oblique point capitaliser. 58 00:03:28,090 --> 00:03:32,540 Encore une fois, pour l'entrée, je vais vous donner "bonjour" dans tous les cas inférieure et maintenant appuyez sur Entrée, 59 00:03:32,540 --> 00:03:34,550 et "bonjour", beaucoup plus proprement imprimé. 60 00:03:34,550 --> 00:03:36,432