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 私のコマンドライン引数、1本あたり 行するようにこれを実行する際に 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 そうそれをするために、私は1以上のループを必要としています。 15 00:00:40,620 --> 00:00:42,090 >> のはそれを追加してみましょう。 16 00:00:42,090 --> 00:00:46,890 int型のため、のは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の%cが、今回は、新たに続いて ライン、近くに引用符、コンマ、今 26 00:01:21,920 --> 00:01:25,565 j番目の文字を必要とする 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 そして私は、より深いレベル1に飛び込むことができます とのセカンダリインデックスを行う 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 私たちは、代わりに各引数を参照してください。 一度に1文字。 50 00:02:40,470 --> 00:02:43,165