1 00:00:00,000 --> 00:00:00,280 2 00:00:00,280 --> 00:00:02,240 >> DAVID Malan: Voyons maintenant raffiner ce programme un peu plus loin. 3 00:00:02,240 --> 00:00:06,510 Ne serait-il pas agréable si toupper pourrait une lettre en majuscule si minuscules, et 4 00:00:06,510 --> 00:00:08,880 sinon minuscules, passe à travers inchangé? 5 00:00:08,880 --> 00:00:12,110 En d'autres termes, pourrais-je remplacer mon if-else bloc avec un 6 00:00:12,110 --> 00:00:13,960 seul appel à toupper? 7 00:00:13,960 --> 00:00:16,000 >> Eh bien, pour répondre à cette question, Je consulte le meilleur 8 00:00:16,000 --> 00:00:17,630 documentation pour toupper. 9 00:00:17,630 --> 00:00:22,100 Pour ce faire, permettez-moi d'ouvrir un terminal plus grand fenêtre à l'extérieur de gedit, et 10 00:00:22,100 --> 00:00:26,060 puis tapez l'homme toupper, ainsi ce qui signifie que je voudrais ouvrir le 11 00:00:26,060 --> 00:00:29,060 dite page de manuel pour la fonction toupper. 12 00:00:29,060 --> 00:00:31,580 Sur frapper Entrez, je vois un écran comme celui-ci. 13 00:00:31,580 --> 00:00:34,750 Et maintenant remarquent qu'ils semblent avoir combinée à la documentation de toupper 14 00:00:34,750 --> 00:00:37,010 supérieure à celle de tolower. 15 00:00:37,010 --> 00:00:38,010 Mais peu importe. 16 00:00:38,010 --> 00:00:41,640 >> Vous remarquerez dans le synopsis que Je me rappelle que, en effet, d'utiliser cette 17 00:00:41,640 --> 00:00:45,220 fonction, je dois inclure la fichier d'en-tête ctype.h. 18 00:00:45,220 --> 00:00:49,520 Ci-dessous, vous voyez que toupper est déclaré comme retournant un int et 19 00:00:49,520 --> 00:00:52,720 accepter un int, ce qui est un peu curieux, depuis ce jour, j'ai été 20 00:00:52,720 --> 00:00:54,370 manipulation caractères seulement. 21 00:00:54,370 --> 00:00:55,310 Mais c'est OK. 22 00:00:55,310 --> 00:00:59,070 Il s'avère que c'est juste une convention, et nous pouvons toujours utiliser comme c 23 00:00:59,070 --> 00:01:01,990 si c'est un char, même si il est déclaré comme un int. 24 00:01:01,990 --> 00:01:05,850 >> Maintenant, dans la description ici, je vois que toupper convertit la lettre c pour 25 00:01:05,850 --> 00:01:07,980 majuscules si possible. 26 00:01:07,980 --> 00:01:11,520 Et sous la valeur de retour, je vois que la valeur renvoyée est celle de l' 27 00:01:11,520 --> 00:01:15,320 lettre convertie, ou c, si le conversion n'a pas été possible. 28 00:01:15,320 --> 00:01:17,120 Et il ya l'aperçu Je cherchais. 29 00:01:17,120 --> 00:01:21,060 Si c n'est pas, en fait, une minuscule lettre, il semble que toupper sera 30 00:01:21,060 --> 00:01:23,450 tout simplement passer le long inchangé. 31 00:01:23,450 --> 00:01:25,750 >> Revenons donc maintenant à mon code. 32 00:01:25,750 --> 00:01:30,480 Et nous allons supprimer maintenant la totalité de ce bloc conditionnel et le remplacer, 33 00:01:30,480 --> 00:01:40,240 tout simplement, avec printf% c virgule toupper de support s je ferme paren 34 00:01:40,240 --> 00:01:45,120 proches paren-virgule, ce qui ce qui signifie que je voudrais remplacer% c 35 00:01:45,120 --> 00:01:49,050 la capitalisation de la lettre i dans s si la ième 36 00:01:49,050 --> 00:01:50,530 lettre s est en minuscules. 37 00:01:50,530 --> 00:01:53,710 Ou même si elle n'est pas, il sera traversé inchangé. 38 00:01:53,710 --> 00:01:58,790 >> Compilons maintenant ce programme avec faire capitalize2, et l'exécuter avec 39 00:01:58,790 --> 00:02:01,800 capitalize2, encore une fois, tapez bonjour. 40 00:02:01,800 --> 00:02:03,800 Et en effet, nous serons de retour en majuscules. 41 00:02:03,800 --> 00:02:05,090 Disons encore tapez David. 42 00:02:05,090 --> 00:02:06,340 Et lui aussi, est en majuscules. 43 00:02:06,340 --> 00:02:09,380