1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> Дэвид Дж. Малан: Давайте вещи еще один шаг вперед, теперь. 3 00:00:02,460 --> 00:00:05,450 Предположим, что я не просто хочу печатать все мои програмы 4 00:00:05,450 --> 00:00:06,630 аргументы командной строки. 5 00:00:06,630 --> 00:00:10,490 Но я, наоборот, хотите напечатать все отдельные символы в каждой из 6 00:00:10,490 --> 00:00:14,060 мои аргументы командной строки, по одному на линия, так что после запуска этого 7 00:00:14,060 --> 00:00:17,490 Программа, Я просто вижу поток символы на экране, что 8 00:00:17,490 --> 00:00:20,700 коллективно от моего последовательности аргументов командной строки. 9 00:00:20,700 --> 00:00:21,980 >> Ну, как я могу это сделать? 10 00:00:21,980 --> 00:00:26,540 Я могу держать неповрежденным мой цикл от до причем я не итерационные от I вплоть до 11 00:00:26,540 --> 00:00:30,060 ARGC для того, чтобы интегрировать по аргументы сами командной строки. 12 00:00:30,060 --> 00:00:34,460 Но теперь, в каждой итерации, что петля, мне нужно сейчас перебрать каждый 13 00:00:34,460 --> 00:00:38,550 из символов или символов в определенной строки. 14 00:00:38,550 --> 00:00:40,620 Таким образом, чтобы сделать это, мне нужно еще один цикл. 15 00:00:40,620 --> 00:00:42,090 >> Добавим, что. 16 00:00:42,090 --> 00:00:46,890 для междунар, давайте назовем это J, равна 0. 17 00:00:46,890 --> 00:00:49,980 Теперь я собираюсь нужно интегрировать вплоть до длины 18 00:00:49,980 --> 00:00:52,310 текущей строкой в ​​ARGV. 19 00:00:52,310 --> 00:00:55,910 Итак, позвольте мне дать себе еще один местный переменная, мы будем называть его п, и установить 20 00:00:55,910 --> 00:01:00,120 что равно длине строки из ток аргумент, который будет 21 00:01:00,120 --> 00:01:04,230 найти в ARGV кронштейна я запятой. 22 00:01:04,230 --> 00:01:08,500 >> Позвольте мне теперь итерации от J до до н не следует 23 00:01:08,500 --> 00:01:10,400 приращение на каждой итерации. 24 00:01:10,400 --> 00:01:13,850 Давайте теперь распечатать человека символов на экране. 25 00:01:13,850 --> 00:01:21,920 Printf% с на этот раз последовал новый линия, недалеко цитата, запятая, и теперь я 26 00:01:21,920 --> 00:01:25,565 нужно J-й символ в аргументе г-го. 27 00:01:25,565 --> 00:01:30,240 >> Таким образом, чтобы получить на это, я могу просто указать АРВ кронштейн я к 28 00:01:30,240 --> 00:01:32,050 получить аргумент г-ю. 29 00:01:32,050 --> 00:01:36,140 И тогда я могу погрузиться в одном уровне глубже и сделать вторичный индекс 30 00:01:36,140 --> 00:01:40,420 Кронштейн J, закрывающая скобка, точка с запятой, Сохранить. 31 00:01:40,420 --> 00:01:43,610 И давайте теперь скомпилировать и запустить эту программу. 32 00:01:43,610 --> 00:01:46,630 >> Сделать ARGV2 - 33 00:01:46,630 --> 00:01:48,440 не совсем то, что я ожидал. 34 00:01:48,440 --> 00:01:50,740 Давайте прокрутки до первого из этих сообщений об ошибках. 35 00:01:50,740 --> 00:01:54,540 И в красном здесь, мы видим ошибку, неявно объявляя библиотечная функция 36 00:01:54,540 --> 00:01:56,290 STRLEN с типом - 37 00:01:56,290 --> 00:01:57,380 ой, подождите минуту. 38 00:01:57,380 --> 00:02:00,340 Это первый раз, когда я использовал STRLEN, и я не ожидал 39 00:02:00,340 --> 00:02:04,970 желая его сначала, так что я не включают файл заголовка, который объявляет 40 00:02:04,970 --> 00:02:06,290 строка функция длины. 41 00:02:06,290 --> 00:02:09,419 >> Так в верхней части моего файла, Напомним, у меня есть CS50.h. 42 00:02:09,419 --> 00:02:11,080 У меня есть стандартный io.h. 43 00:02:11,080 --> 00:02:14,500 Но, оказывается, и я знаю это по читая документацию, что мне нужно 44 00:02:14,500 --> 00:02:18,320 третий файл заголовка, если я, в самом деле, хотите использовать функцию STRLEN. 45 00:02:18,320 --> 00:02:22,760 Это функция объявлена ​​в string.h. 46 00:02:22,760 --> 00:02:25,230 >> Давайте повторно сохранить файл, компиляция и выполнение. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 И на этот раз, мы не просто см. каждого из аргументов. 49 00:02:35,570 --> 00:02:40,470 Мы вместо этого видеть каждого из аргументов один символ за один раз. 50 00:02:40,470 --> 00:02:43,165