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 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 لكثافة العمليات، دعونا نسميها ي، يساوي 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 >> اسمحوا لي الآن من تكرار ما يصل ي حتى يتبع ن قبل 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 في حاجة إلى حرف ي ال في حجة ط ال. 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 قوس ي، قوس إغلاق، منقوطة، حفظ. 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