1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Prenons les choses un peu plus loin, maintenant. 3 00:00:02,460 --> 00:00:05,450 Supposons que je ne veux pas seulement pour imprimer tout mon programme de 4 00:00:05,450 --> 00:00:06,630 arguments de ligne de commande. 5 00:00:06,630 --> 00:00:10,490 Mais moi, à la place, je veux imprimer tous les caractères individuels dans chacun des 6 00:00:10,490 --> 00:00:14,060 mes arguments de ligne de commande, un par ligne, de sorte que sur l'exécution de cette 7 00:00:14,060 --> 00:00:17,490 programme, je ne vois tout simplement un flux de caractères sur l'écran qui 8 00:00:17,490 --> 00:00:20,700 collectivement sont de ma séquence des arguments de ligne de commande. 9 00:00:20,700 --> 00:00:21,980 >> Eh bien, comment puis-je faire cela? 10 00:00:21,980 --> 00:00:26,540 Je peux garder intacte ma boucle d'avant laquelle je itératif de i jusqu'à 11 00:00:26,540 --> 00:00:30,060 ARGC afin d'intégrer dans le arguments de ligne de commande eux-mêmes. 12 00:00:30,060 --> 00:00:34,460 Mais maintenant, dans chaque itération de cette boucle, j'ai besoin de parcourir maintenant sur chaque 13 00:00:34,460 --> 00:00:38,550 des caractères ou des caractères dans une chaîne spécifique. 14 00:00:38,550 --> 00:00:40,620 Donc, pour ce faire, j'ai besoin d'un plus boucle. 15 00:00:40,620 --> 00:00:42,090 >> Ajoutons que. 16 00:00:42,090 --> 00:00:46,890 pour int, appelons-j, est égal à 0. 17 00:00:46,890 --> 00:00:49,980 Maintenant, je vais avoir besoin d'intégrer vers le haut jusqu'à ce que la longueur de l' 18 00:00:49,980 --> 00:00:52,310 chaîne actuelle dans ARGV. 19 00:00:52,310 --> 00:00:55,910 Alors permettez-moi de me donner une autre locale variables, nous l'appellerons n, et mis 20 00:00:55,910 --> 00:01:00,120 que égale à la longueur de chaîne de l' l'argument actuel, qui va être 21 00:01:00,120 --> 00:01:04,230 trouvé dans le support ARGV i-virgule. 22 00:01:04,230 --> 00:01:08,500 >> Permettez-moi maintenant itérer de j-vous jusqu'à ce que n suivi d'un 23 00:01:08,500 --> 00:01:10,400 incrémenter à chaque itération. 24 00:01:10,400 --> 00:01:13,850 Voyons maintenant imprimer la personne caractères sur l'écran. 25 00:01:13,850 --> 00:01:21,920 Printf% c cette fois suivie d'une nouvelle ligne, citation à proximité, virgule, et maintenant je 26 00:01:21,920 --> 00:01:25,565 besoin le caractère j-ième dans l'argument i-ème. 27 00:01:25,565 --> 00:01:30,240 >> Donc, pour obtenir à cela, je ne peux tout simplement spécifier support ARV i à 28 00:01:30,240 --> 00:01:32,050 obtenir l'argument i-ème. 29 00:01:32,050 --> 00:01:36,140 Et puis je peux plonger dans un niveau plus profond et faire un index secondaire de 30 00:01:36,140 --> 00:01:40,420 j support, parenthèse fermante, virgule, Enregistrer. 31 00:01:40,420 --> 00:01:43,610 Et nous allons compiler maintenant et exécuter ce programme. 32 00:01:43,610 --> 00:01:46,630 >> Faire ARGV2 - 33 00:01:46,630 --> 00:01:48,440 pas tout à fait ce que je m'attendais. 34 00:01:48,440 --> 00:01:50,740 Disons défiler jusqu'à la première de ces messages d'erreur. 35 00:01:50,740 --> 00:01:54,540 Et en rouge ici, nous voyons erreur, déclarant implicitement fonction de bibliothèque 36 00:01:54,540 --> 00:01:56,290 strlen avec le type - 37 00:01:56,290 --> 00:01:57,380 oh, attendez une minute. 38 00:01:57,380 --> 00:02:00,340 C'est la première fois que j'ai utilisé strlen, et je ne m'attendais pas 39 00:02:00,340 --> 00:02:04,970 vouloir au début, donc je n'ai pas inclure le fichier d'en-tête qui déclare 40 00:02:04,970 --> 00:02:06,290 une fonction de longueur de chaîne. 41 00:02:06,290 --> 00:02:09,419 >> Alors au sommet de mon dossier, rappel, j'ai CS50.h. 42 00:02:09,419 --> 00:02:11,080 J'ai io.h. norme 43 00:02:11,080 --> 00:02:14,500 Mais il s'avère, et je sais que cela se la lecture de la documentation, que j'ai besoin 44 00:02:14,500 --> 00:02:18,320 un troisième fichier d'en-tête si je, en effet, voulez utiliser la fonction strlen. 45 00:02:18,320 --> 00:02:22,760 Cette fonction est déclarée dans string.h. 46 00:02:22,760 --> 00:02:25,230 >> Disons réenregistrer le fichier, compiler et exécuter. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 Et cette fois, nous n'avons pas seulement voir chacun des arguments. 49 00:02:35,570 --> 00:02:40,470 Nous voyons la place de chacun des arguments un caractère à la fois. 50 00:02:40,470 --> 00:02:43,165