1 00:00:00,000 --> 00:00:00,560 2 00:00:00,560 --> 00:00:02,460 >> DAVID J. MALAN: Lassen Sie uns die Dinge einen Schritt weiter, jetzt. 3 00:00:02,460 --> 00:00:05,450 Nehmen wir an, ich will nicht nur alle meine Programm drucken 4 00:00:05,450 --> 00:00:06,630 Befehlszeilenargumente. 5 00:00:06,630 --> 00:00:10,490 Aber ich, sondern alle die drucken möchten einzelne Zeichen in jedem der 6 00:00:10,490 --> 00:00:14,060 meine Kommandozeilen-Argumente, eine pro Linie, so dass bei der Ausführung dieses 7 00:00:14,060 --> 00:00:17,490 Programm, habe ich einfach sehen, einen Strom von Zeichen auf dem Bildschirm, dass 8 00:00:17,490 --> 00:00:20,700 gemeinsam sind von meiner Sequenz Befehlszeilenargumente. 9 00:00:20,700 --> 00:00:21,980 >> Nun, wie kann ich dies tun? 10 00:00:21,980 --> 00:00:26,540 Ich kann meine intakte Schleife von vor halten wobei ich iterativ von i bis 11 00:00:26,540 --> 00:00:30,060 ARGC, um über die Integration Befehlszeilenargumente sich. 12 00:00:30,060 --> 00:00:34,460 Aber jetzt, in jeder Iteration, dass Schleife, muss ich jetzt über jeden laufen 13 00:00:34,460 --> 00:00:38,550 der Zeichen oder Zeichen in einer bestimmten Zeichenfolge. 14 00:00:38,550 --> 00:00:40,620 So, das zu tun, brauche ich eine weitere Schleife. 15 00:00:40,620 --> 00:00:42,090 >> Fügen wir, dass. 16 00:00:42,090 --> 00:00:46,890 für int, nennen wir es j, gleich 0 ist. 17 00:00:46,890 --> 00:00:49,980 Jetzt werde ich brauchen, um die Integration bis die Länge der 18 00:00:49,980 --> 00:00:52,310 aktuellen Zeichenfolge in ARGV. 19 00:00:52,310 --> 00:00:55,910 So möchte ich mich ein anderes lokales geben Variable, werden wir es n nennen, und stellen Sie 20 00:00:55,910 --> 00:01:00,120 , die gleich der Länge der Zeichenfolge Strom Argument, die gehen, um sein 21 00:01:00,120 --> 00:01:04,230 in ARGV Halterung fand ich Semikolon. 22 00:01:04,230 --> 00:01:08,500 >> Lassen Sie mich nun von j bis laufen bis n durch eine anschließend 23 00:01:08,500 --> 00:01:10,400 Inkrementieren jeder Iteration. 24 00:01:10,400 --> 00:01:13,850 Lassen Sie uns nun die einzelnen Druck Zeichen auf dem Bildschirm. 25 00:01:13,850 --> 00:01:21,920 Durch eine neue printf% c diesmal gefolgt Zeile, in der Nähe Zitat, Komma, und jetzt habe ich 26 00:01:21,920 --> 00:01:25,565 brauchen die j-te Zeichen in dem i-ten Argument. 27 00:01:25,565 --> 00:01:30,240 >> Also auf das zu bekommen, kann ich einfach angeben ARV Halterung i 28 00:01:30,240 --> 00:01:32,050 erhalten die i-te Argument. 29 00:01:32,050 --> 00:01:36,140 Und dann kann ich in eine Ebene tiefer tauchen und machen Sie einen Sekundärindex 30 00:01:36,140 --> 00:01:40,420 Halterung j, schließende Klammer, Semikolon, Speichern. 31 00:01:40,420 --> 00:01:43,610 Und lassen Sie uns jetzt kompilieren und führen Sie dieses Programm. 32 00:01:43,610 --> 00:01:46,630 >> Machen ARGV2 - 33 00:01:46,630 --> 00:01:48,440 nicht ganz das, was ich erwartet hatte. 34 00:01:48,440 --> 00:01:50,740 Lassen Sie uns nach oben auf die erste dieser Fehlermeldungen. 35 00:01:50,740 --> 00:01:54,540 Und hier in rot, sehen wir Fehler, implizit erklärt Bibliotheksfunktion 36 00:01:54,540 --> 00:01:56,290 strlen mit Typ - 37 00:01:56,290 --> 00:01:57,380 oh, warten Sie eine Minute. 38 00:01:57,380 --> 00:02:00,340 Dies ist das erste Mal, das ich verwendet habe strlen, und ich habe nicht davon aus, 39 00:02:00,340 --> 00:02:04,970 wollen es auf den ersten, so dass ich nicht gehören die Header-Datei, die erklärt, 40 00:02:04,970 --> 00:02:06,290 ein String-Länge-Funktion. 41 00:02:06,290 --> 00:02:09,419 >> So an der Spitze meiner Datei Rückruf, ich habe CS50.h. 42 00:02:09,419 --> 00:02:11,080 Ich habe Standard io.h. 43 00:02:11,080 --> 00:02:14,500 Aber es stellt sich heraus, und ich weiß das aus Lesen Sie in der Dokumentation, dass ich 44 00:02:14,500 --> 00:02:18,320 eine dritte Header-Datei, wenn ich in der Tat, wollen die strlen-Funktion verwenden. 45 00:02:18,320 --> 00:02:22,760 Diese Funktion wird in string.h erklärt. 46 00:02:22,760 --> 00:02:25,230 >> Lassen speichern Sie die Datei, kompilieren und ausführen. 47 00:02:25,230 --> 00:02:32,360 48 00:02:32,360 --> 00:02:35,570 Und dieses Mal haben wir nicht nur sehen jedes der Argumente. 49 00:02:35,570 --> 00:02:40,470 Wir sehen, statt jedes der Argumente ein Zeichen zu einem Zeitpunkt. 50 00:02:40,470 --> 00:02:43,165