1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. Malan: Mari kita mengambil hal-hal satu langkah lebih lanjut, sekarang. 3 00:00:02,460 --> 00:00:05,450 Misalkan bahwa saya tidak hanya ingin untuk mencetak semua program saya 4 00:00:05,450 --> 00:00:06,630 argumen baris perintah. 5 00:00:06,630 --> 00:00:10,490 Tapi aku, sebaliknya, ingin mencetak semua karakter individu di setiap 6 00:00:10,490 --> 00:00:14,060 saya argumen baris perintah, satu per line, sehingga pada saat menjalankan ini 7 00:00:14,060 --> 00:00:17,490 Program, saya hanya melihat aliran karakter pada layar yang 8 00:00:17,490 --> 00:00:20,700 kolektif adalah dari urutan saya dari argumen baris perintah. 9 00:00:20,700 --> 00:00:21,980 >> Nah, bagaimana saya bisa melakukan ini? 10 00:00:21,980 --> 00:00:26,540 Saya bisa tetap utuh loop saya dari sebelum dimana saya berulang dari i sampai 11 00:00:26,540 --> 00:00:30,060 Argc untuk mengintegrasikan atas baris perintah argumen sendiri. 12 00:00:30,060 --> 00:00:34,460 Tapi sekarang, dalam setiap iterasi yang lingkaran, saya perlu sekarang iterate atas setiap 13 00:00:34,460 --> 00:00:38,550 karakter atau karakter dalam string tertentu. 14 00:00:38,550 --> 00:00:40,620 Jadi untuk melakukan itu, saya perlu satu loop lagi. 15 00:00:40,620 --> 00:00:42,090 >> Mari menambahkan bahwa. 16 00:00:42,090 --> 00:00:46,890 untuk int, sebut saja j, sama dengan 0. 17 00:00:46,890 --> 00:00:49,980 Sekarang aku akan perlu mengintegrasikan sampai panjang 18 00:00:49,980 --> 00:00:52,310 string yang saat ini di argv. 19 00:00:52,310 --> 00:00:55,910 Jadi biarkan saya memberi diriku lokal lain variabel, kita akan menyebutnya n, dan mengatur 20 00:00:55,910 --> 00:01:00,120 yang sama dengan panjang string dari Argumen saat ini, yang akan menjadi 21 00:01:00,120 --> 00:01:04,230 ditemukan di argv braket i titik koma. 22 00:01:04,230 --> 00:01:08,500 >> Sekarang saya iterate dari j up sampai n diikuti oleh 23 00:01:08,500 --> 00:01:10,400 kenaikan pada setiap iterasi. 24 00:01:10,400 --> 00:01:13,850 Sekarang mari kita mencetak individu karakter di layar. 25 00:01:13,850 --> 00:01:21,920 Printf% c kali ini diikuti oleh baru baris, kutipan dekat, koma, dan sekarang saya 26 00:01:21,920 --> 00:01:25,565 membutuhkan karakter-j dalam argumen-i th. 27 00:01:25,565 --> 00:01:30,240 >> Jadi untuk mendapatkan itu, saya hanya bisa tentukan ARV braket i untuk 28 00:01:30,240 --> 00:01:32,050 mendapatkan argumen-i th. 29 00:01:32,050 --> 00:01:36,140 Dan kemudian saya dapat menyelam di satu tingkat lebih dalam dan melakukan indeks sekunder 30 00:01:36,140 --> 00:01:40,420 braket j, kurung tutup, koma, Simpan. 31 00:01:40,420 --> 00:01:43,610 Dan sekarang mari kita kompilasi dan menjalankan program ini. 32 00:01:43,610 --> 00:01:46,630 >> Membuat ARGV2 - 33 00:01:46,630 --> 00:01:48,440 tidak cukup apa yang saya harapkan. 34 00:01:48,440 --> 00:01:50,740 Mari kita gulir ke atas untuk yang pertama pesan-pesan kesalahan. 35 00:01:50,740 --> 00:01:54,540 Dan merah di sini, kita melihat kesalahan, implisit menyatakan fungsi perpustakaan 36 00:01:54,540 --> 00:01:56,290 strlen dengan tipe - 37 00:01:56,290 --> 00:01:57,380 oh, tunggu dulu. 38 00:01:57,380 --> 00:02:00,340 Ini adalah pertama kalinya saya telah menggunakan strlen, dan saya tidak mengantisipasi 39 00:02:00,340 --> 00:02:04,970 ingin itu pada awalnya, jadi saya tidak termasuk file header yang menyatakan 40 00:02:04,970 --> 00:02:06,290 fungsi panjang string. 41 00:02:06,290 --> 00:02:09,419 >> Jadi di bagian atas file saya, ingat, saya memiliki CS50.h. 42 00:02:09,419 --> 00:02:11,080 Saya memiliki io.h. standar 43 00:02:11,080 --> 00:02:14,500 Tapi ternyata, dan saya tahu ini dari membaca dokumentasi, yang saya butuhkan 44 00:02:14,500 --> 00:02:18,320 file header ketiga jika aku, memang, ingin menggunakan fungsi strlen. 45 00:02:18,320 --> 00:02:22,760 Fungsi yang dideklarasikan di string.h. 46 00:02:22,760 --> 00:02:25,230 >> Mari kita menyimpan lagi berkas tersebut, kompilasi, dan menjalankan. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 Dan kali ini, kita tidak hanya melihat setiap argumen. 49 00:02:35,570 --> 00:02:40,470 Kami bukannya melihat setiap argumen satu karakter pada satu waktu. 50 00:02:40,470 --> 00:02:43,165