スピーカ1:のは、そのプログラムを書いてみましょう 名前の入力を促し、 3人の学生の家。 今、それらの名前や家を保存する 我々は、何を、6つの変数を使用することができます。 3つの名前の文字列、および他の 住宅の3つの文字列、 しかし、我々はすでに我々はクリーンアップすることができますことを知っている 代わりに、配列を使用して、そのコードが、 例えば用サイズ3の配列 3名、および他の配列 住宅の大きさ3。 しかし、それは我々はこれをクリーンアップすることができ判明 さらにまた、、実際にそれらを保つ 一緒に名前や家、その結果、 生徒の名前と彼または彼女の家 何とかそのためには、カプセル化されている 同じ変数に、話す。 これを行うには、しかし、我々は宣言する必要があります 私たち自身のデータ型、C言語で私たち自身の型、 Cの作者は必ずしもなかったこと 年前を考える。 これを行うために、我々は、キーワードを使用することができます typedefは、と一緒に 他のキーワードstruct。 それでは見てみましょう。 structs.hの内部では、私はすでにしました によって開始され得 CS50ライブラリを含む。 私は次の、typedefで構造体を入力するつもりです してから中括弧。 構造体の内部では、私はするつもりだ 学生が持っているものとするように指定 nameという文字列、および他の 文字列は、家と呼ばれる。 私はその後、私の中括弧を閉じるつもりだ、 と指定していることの名前 この新しいデータ型は、学生でなければならない。 つまり、この構文で私が持っている 私自身の新しいデータ型を宣言した それは一瞬前には存在しなかったし、 このデータ型の内部に二つのデータである フィールドまたはデータメンバ、名前と呼ばれる1、 1と呼ばれる家、どちらもの 文字列型である。 それでは、このタイプを使用してみましょう 実際のプログラムでは。 structs0.cでは、私は同じように得ている 私はいくつかにすでに開始 定型的なコード、と私は今よ このデータを使用するつもり 次のように、学生を入力します。 私が最初に宣言するつもりだ タイプの学生の配列、私はよ 配列の学生を呼ぶ - 複数 - そして私は、そのサイズがあることを指定します の値であり、予告、3、 一定の学生が - すべて大文字で - 私はここに宣言されたので、 以前のファイルに。 それでは、これらの3を反復しましょう 学生、の入力をユーザーに求める 自分の名前や家。 私は0を得るint型のために、私は小さい その定数より、私は+ +。 そして今は、この本体の内部 ループ、私は何かをプリントアウトするつもりだ 学生の名前を挙げることができる。 私は、実際にそれを取得するつもりだ 指定することで、学生の名前 学生が私を囲む。 つまり、私は、i番目の学生が欲しい 配列になりました生徒を呼び出しましたが、 私は、i番目のスチューデントで取得したい 名前を付けて、これを行うには、私が使用するつもり 。オペレータ、で取得するために、 構造体の内部に特定のフィールド。 だから私は、私が学生のブラケットを指定します。名前を GetStringメソッドの戻り値を取得します()。 その間、私はプリントアウトするつもりだ スチューデント言って似たような、 ハウス、今私が指定するつもりだ そのi番目の生徒の家のフィールド の戻り値を取得しなければならない GetStringメソッドの別の呼び出し()。 それでは、これら3で何かをやらせる 生徒の名前や家、 印刷のような単純なもの センテンス内の各点。 私は0を得るINTため、再び私はより少ない 学生は、私+ +のprintf "%sは%sである。 バックスラッシュN」、そして今私はプラグインしましょう これらの二つのフィールドの値は、 学生は、私。名前、コンマを一括 学生が私を囲む。家、近い 括弧、セミコロン。 そして今、私はもう一つのことを行う必要があります。 このファイルの最後に、私がする必要が 割り当てられたメモリを解放 GetSring()によって舞台裏いる もちろんするためには、malloc関数を呼び出し、 文字列にメモリを割り当てる ユーザーの種類。 これには簡単です。 私は0を得るint型のために、私はより少ない 、私+ +、および体内の生徒 このループのために、私は単純にするつもりだ 私は自由、学生のブラケットを提供します。名前を、 無料の学生が私を囲む。家。 今、我々は明らかにループの3を使用しました このプログラムでは、とき本当に私 ひとつを用いるが、これはあるかもしれない ただ、デモの為に、その結​​果、 我々は3つの異なる中で指定することができます 我々がやっていることを正確にどのような手順。 我々は最初の名前と家を取得している 学生の各々について、我々はその後だ の名前と家をプリントアウト 3学生のそれぞれ、および その後、我々はメモリを解放するつもりだ 学生の各々によって使用される。 しかし確実に我々はこれを組み合わせていたかもしれない ループの大きな一つに。 コンパイル、今度は保存でき、 このプログラムを実行してください。 構造体0を作る。/構造体0、スチューデント 名前、のはデビッドを提供しましょう​​、と彼は生きるよ メイザーハウス、学生の名前で、みましょう ローレンと言うと、彼女はレベレットに住んでます ハウス、学生の名前、ロブ、彼はよ カークランド家に住んでいる。 そして実際、ダビデはマザーにあり、 ローレンレベレットにあり、 とロブはカークランドにあります。