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