1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Imos levar as cousas un paso adiante, agora. 3 00:00:02,460 --> 00:00:05,450 Supoñamos que eu non quero só para imprimir todo o meu programa de 4 00:00:05,450 --> 00:00:06,630 Argumentos da liña de comandos. 5 00:00:06,630 --> 00:00:10,490 Pero, pola contra, desexa imprimir todas as caracteres individuais en cada un dos 6 00:00:10,490 --> 00:00:14,060 meus argumentos de liña de comandos, unha por A liña, de xeito que tras a execución deste 7 00:00:14,060 --> 00:00:17,490 programa, eu simplemente ver un fluxo de caracteres na pantalla que 8 00:00:17,490 --> 00:00:20,700 colectivamente son de miña secuencia de argumentos de liña de comandos. 9 00:00:20,700 --> 00:00:21,980 >> Ben, como podo facelo? 10 00:00:21,980 --> 00:00:26,540 Podo manter intacta meu loop de antes polo cal eu iterativo de i ata 11 00:00:26,540 --> 00:00:30,060 ARGC para integrar todo o propios argumentos de liña de comandos. 12 00:00:30,060 --> 00:00:34,460 Pero agora, dentro de cada iteración do que loop, eu teño que facer unha iteración agora sobre cada 13 00:00:34,460 --> 00:00:38,550 dos personaxes ou caracteres nunha secuencia específica. 14 00:00:38,550 --> 00:00:40,620 Entón, para facelo, eu teño un loop. 15 00:00:40,620 --> 00:00:42,090 >> Imos engadir iso. 16 00:00:42,090 --> 00:00:46,890 para int, imos chamalo j, é igual a 0. 17 00:00:46,890 --> 00:00:49,980 Agora estou indo a necesidade de integrar ata a lonxitude do 18 00:00:49,980 --> 00:00:52,310 corda corrente en argv. 19 00:00:52,310 --> 00:00:55,910 Entón deixe-me dar-me un outro lugar, variable, imos chamalo de n, e establecer 20 00:00:55,910 --> 00:01:00,120 que igual á lonxitude da corda do argumento actual, que será 21 00:01:00,120 --> 00:01:04,230 atopada en soporte argv i punto e coma. 22 00:01:04,230 --> 00:01:08,500 >> Déixeme interar do j-se ata n seguido por un 23 00:01:08,500 --> 00:01:10,400 incrementar en cada iteración. 24 00:01:10,400 --> 00:01:13,850 Imos agora imprimir o individuo caracteres na pantalla. 25 00:01:13,850 --> 00:01:21,920 Printf% c este tempo, seguido por un novo liña, multimedia preto, coma, e agora eu 26 00:01:21,920 --> 00:01:25,565 precisa do carácter j-th no argumento de i-th. 27 00:01:25,565 --> 00:01:30,240 >> Así, para obter con iso, podo simplemente especifica soporte ARV i para 28 00:01:30,240 --> 00:01:32,050 obter o argumento de i-th. 29 00:01:32,050 --> 00:01:36,140 E entón podo mergullo nun nivel máis profundo e facer un índice secundario de 30 00:01:36,140 --> 00:01:40,420 soporte j, preto parénteses, punto e coma, en Gardar. 31 00:01:40,420 --> 00:01:43,610 E imos agora compilar e executar este programa. 32 00:01:43,610 --> 00:01:46,630 >> Fai ARGV2 - 33 00:01:46,630 --> 00:01:48,440 Non é así o que eu estaba esperando. 34 00:01:48,440 --> 00:01:50,740 Imos percorrer ata o primeiro destas mensaxes de erro. 35 00:01:50,740 --> 00:01:54,540 E en vermello aquí vemos erro, implicitamente declarando función de biblioteca 36 00:01:54,540 --> 00:01:56,290 strlen co tipo - 37 00:01:56,290 --> 00:01:57,380 Oh, agarde un minuto. 38 00:01:57,380 --> 00:02:00,340 Esta é a primeira vez que eu usei strlen, e eu non anticipei 39 00:02:00,340 --> 00:02:04,970 querendo nun primeiro momento, entón eu non incluíu o ficheiro de cabeceira que declara 40 00:02:04,970 --> 00:02:06,290 unha función lonxitude da corda. 41 00:02:06,290 --> 00:02:09,419 >> Entón, na parte superior do meu arquivo, recall, teño CS50.h. 42 00:02:09,419 --> 00:02:11,080 Teño io.h. defecto 43 00:02:11,080 --> 00:02:14,500 Pero acontece, e sei que isto ler a documentación, o que eu teño 44 00:02:14,500 --> 00:02:18,320 un terceiro arquivo de cabeceira, se eu, de feito, Quere usar a función strlen. 45 00:02:18,320 --> 00:02:22,760 Esta función é declarada en string.h. 46 00:02:22,760 --> 00:02:25,230 >> Imos gardar de novo o ficheiro, compilar e executar. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 E, esta vez, non só ver cada un dos argumentos. 49 00:02:35,570 --> 00:02:40,470 Nós, pola contra ver cada un dos argumentos un carácter de cada vez. 50 00:02:40,470 --> 00:02:43,165