1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. مالان: بیایید همه چیز را یک گام به جلو، در حال حاضر. 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 من می توانم دست نخورده از قبل حفظ حلقه من به موجب آن من از من تکرار شونده تا 11 00:00:26,540 --> 00:00:30,060 تعداد آنها به منظور یکپارچه سازی بیش از آرگومان خط فرمان خود. 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 بنابراین اجازه دهید من خودم یکی دیگر از محلی را متغیر، ما آن را N می نامیم، و مجموعه 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 تا تکرار تا n را به دنبال 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-TH شخصیت در بحث i ام. 27 00:01:25,565 --> 00:01:30,240 >> بنابراین به در آن را دریافت کنید، من به سادگی می توانید مشخص ARV براکت من به 28 00:01:30,240 --> 00:01:32,050 دریافت آرگومان i ام. 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 >> اجازه دهید resave فایل، کامپایل و اجرا کنید. 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