1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. MALAN: Prendiamo le cose un passo avanti, ora. 3 00:00:02,460 --> 00:00:05,450 Supponiamo che io non voglio solo per stampare tutto il mio programma di 4 00:00:05,450 --> 00:00:06,630 argomenti della riga di comando. 5 00:00:06,630 --> 00:00:10,490 Ma io, invece, voglio stampare tutte le singoli caratteri in ciascuno dei 6 00:00:10,490 --> 00:00:14,060 i miei argomenti della riga di comando, uno per linea, in modo che al momento di eseguire questo 7 00:00:14,060 --> 00:00:17,490 programma, ho semplicemente vedo un flusso di caratteri sullo schermo che 8 00:00:17,490 --> 00:00:20,700 collettivamente sono dalla mia sequenza di argomenti della riga di comando. 9 00:00:20,700 --> 00:00:21,980 >> Beh, come posso fare questo? 10 00:00:21,980 --> 00:00:26,540 Posso mantenere intatto il mio ciclo da prima per cui ho iterativo da i fino 11 00:00:26,540 --> 00:00:30,060 ARGC per integrare il argomenti della riga di comando stessi. 12 00:00:30,060 --> 00:00:34,460 Ma ora, all'interno di ogni iterazione di tale loop, ho bisogno di iterare ora su ogni 13 00:00:34,460 --> 00:00:38,550 dei personaggi o caratteri in una stringa specifica. 14 00:00:38,550 --> 00:00:40,620 Quindi, per fare questo, ho bisogno di un altro ciclo. 15 00:00:40,620 --> 00:00:42,090 >> Aggiungiamo che. 16 00:00:42,090 --> 00:00:46,890 per int, chiamiamolo j, è uguale a 0. 17 00:00:46,890 --> 00:00:49,980 Ora sto andando ad avere bisogno di integrare Fino alla lunghezza del 18 00:00:49,980 --> 00:00:52,310 stringa corrente in ARGV. 19 00:00:52,310 --> 00:00:55,910 Quindi lasciatemi mi dò un altro locale variabile, che chiameremo n, e impostiamo 20 00:00:55,910 --> 00:01:00,120 che uguale alla lunghezza della stringa del argomento attuale, che sta per essere 21 00:01:00,120 --> 00:01:04,230 trovato in staffa ARGV i punto e virgola. 22 00:01:04,230 --> 00:01:08,500 >> Permettetemi ora di iterare da j up fino n seguito da un 23 00:01:08,500 --> 00:01:10,400 incrementa ad ogni iterazione. 24 00:01:10,400 --> 00:01:13,850 Passiamo ora stampare l'individuo caratteri sullo schermo. 25 00:01:13,850 --> 00:01:21,920 Printf% c questa volta seguito da un nuovo linea, chiudere citazione, virgola, e ora mi 26 00:01:21,920 --> 00:01:25,565 necessario il carattere j-esimo nell'argomento i-esimo. 27 00:01:25,565 --> 00:01:30,240 >> Quindi, per arrivare a questo, posso semplicemente specificare staffa ARV per i 28 00:01:30,240 --> 00:01:32,050 ottenere l'argomento-esimo. 29 00:01:32,050 --> 00:01:36,140 E poi posso tuffarsi in un livello più profondo e fare un indice secondario di 30 00:01:36,140 --> 00:01:40,420 Staffa j, parentesi chiusa, punto e virgola, Salva. 31 00:01:40,420 --> 00:01:43,610 E andiamo ora compilare e eseguire questo programma. 32 00:01:43,610 --> 00:01:46,630 >> Fai ARGV2 - 33 00:01:46,630 --> 00:01:48,440 Non è proprio quello che mi aspettavo. 34 00:01:48,440 --> 00:01:50,740 Facciamo scorrere fino alla prima di questi messaggi di errore. 35 00:01:50,740 --> 00:01:54,540 E qui in rosso, vediamo errore, implicitamente dichiara funzione di libreria 36 00:01:54,540 --> 00:01:56,290 strlen con il tipo - 37 00:01:56,290 --> 00:01:57,380 oh, aspetta un attimo. 38 00:01:57,380 --> 00:02:00,340 Questa è la prima volta che ho usato strlen, e non mi aspettavo 39 00:02:00,340 --> 00:02:04,970 volendo in un primo momento, quindi non ho includere il file di intestazione che dichiara 40 00:02:04,970 --> 00:02:06,290 una funzione lunghezza della stringa. 41 00:02:06,290 --> 00:02:09,419 >> Così, nella parte superiore del mio file, richiamo, ho CS50.h. 42 00:02:09,419 --> 00:02:11,080 Ho io.h. di serie 43 00:02:11,080 --> 00:02:14,500 Ma si scopre, e so che questo da lettura della documentazione, che ho bisogno 44 00:02:14,500 --> 00:02:18,320 un terzo file di intestazione se io, davvero, desidera utilizzare la funzione strlen. 45 00:02:18,320 --> 00:02:22,760 Tale funzione è dichiarata in string.h. 46 00:02:22,760 --> 00:02:25,230 >> Facciamo salvare il file nuovamente, compilare ed eseguire. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 E questa volta, lo facciamo non solo vedi tutti gli argomenti. 49 00:02:35,570 --> 00:02:40,470 Noi invece vediamo gli argomenti un carattere alla volta. 50 00:02:40,470 --> 00:02:43,165