ANDI PENG:私たちは、ほとんどあり すべてのpsetを通じ。 実際には、我々は、大半を通じてだ 最も難しいのpsetの。 だから私たちはただ、実際にしています そよ風のようなものに行きます 数週間を通して。 私たちは話して開始するつもりです 最終的なプロジェクトは、イベントが来ます 次の数週間インチ そして人生は風になります。 だからあまりない今日。 うまくいけば、実際にそよ風ます 今日の議題を通じて、 して、ここからです 余裕がある時間で。 また、私は謝罪したいです キャンディの欠如、今日のために。 どうしてか分かりません。 しかし、週に至るまで ハロウィーンは、私はお菓子を忘れるでしょう。 だから私は実際には巨大なよ 今あなたに失望。 私は文字通りお菓子を覚えているので すべての単一のクラスが、ハロウィンのために。 しかし来週、私が持って来ます お菓子の量を倍増 そのために補うために、すべてのあなたのために。 それは素晴らしいことでしょう。 だから私は発表のカップルを持っています いくつかのスケジューリングに関する。 私はいくつかのスケジューリングの問題があります。 その後、我々はに移動しようとしています chmodコマンドと呼ばれるものについて話しています。 私たちは、について話をするつもりです すぐに、TCP / IP、HTTP。 そして、我々は我々のをコーディングするつもりです HTMLとCSSを使用して独自のウェブサイト。 そして私は実際には多分に残しておきます 20分のようにpset6について話をします。 pset6は、実際に多くのであるから 我々は既に前に見てきたもの、 私はリフレッシュしたかったです これらの概念のいくつか だけでなく、カップルの新機能を教えます。 クール。 すべてのだから最初、 休憩から戻って歓迎します。 私はあなたがブレークが楽しかったです願っています。 あなたが休憩のためにやったのだろうか? 聴衆:ニューヨークに行ってきました。 ANDI PENG:あなたがニューヨークに行ってきましたか? 私は半分の私たちの学校を考えます ニューヨークに行ってきました。 大丈夫。 私は休憩のほとんどを過ごしました ベッドNetflixingで坐りました。 そして、それは良い時間でした。 しかし、我々は戻って、戻って今あります バック物事のスイングでのセッション、。 私たちは正午に今週の金曜日原因のpsetを持っています。 私はあなたが既にしたと思います ええ、あなたのクイズをピックアップ! だから、誰ある者 そのクイズを持っていません、 来て、あなたのクイズを入手してください セクションの最後に私から。 またはキャンパスで私を追跡。 私はどこかで私と一緒にそれを持っています。 私たちの最終的なプロジェクトの事前の提案も。 撮影したことがない私たちにとってそう 前に、このクラス、CS50の絶頂 非常に多く、この中で頂点に達しています 学生が提案する壮大なプロジェクト。 また、事前の提案、 ただ一般的な考え方 一つは自分のために何をしたいかもしれないものの このプロジェクトは、そのアイデアは、月曜日によるものです 正午来週の月曜日。 だからかなり、ダビデは私がすると思います 講義ではこれについて詳しく説明し 彼はすでにしていない場合。 そして、固体のページがあります 当社のウェブサイト上の説明 プロジェクトのすべての要件。 しかし、本質的に、ピック あなたがしたすべてのトピック に興味を持って ここにあなたの時間を通して、 CSで、それはゲームがあることかどうか デザインやビデオか何か。 そして、あなたは本当に親切のことができます 今レッスンの一部を適用 我々はハイCS50--ここで学んだことを、 ほとんど実施しますwelcome-- お好みの最終的なプロジェクト。 すべてのことが原因月曜日があるのです 電子メールを介してだけの簡単な宣伝文句 私には、迅速な文、 ちょっと、のような、アンディ、 私は設計の本当に興味 iOSのためにこれを行うゲーム。 クール。 ちょうど私にあなたの簡単な初期をしましょう 最終的なプロジェクトのためのアイデア。 そして、我々はするかどうかを介して話しましょう それは実際には良いアイデアですか、 それは実現可能なアイデアやはない場合。 しかし、単に前の提案 来週の月曜日が原因です。 pset6、間違っている私たちの素敵なweb--。 Pset7? pset6? それは右、pset6ですか? pset6、弊社のWebサーバは、起因しています 後半日で正午金曜日。 営業時間は月曜日から正常に再開します 木曜日午前8時00 11:00今週に。 私はのためのコモンズを考えます 次の3つの夜。 クール。 私たちは材料に持っていた前に、誰にもありません ご質問、ジョーク、ストーリーがありますか? あなたは秋の休憩のために何をしましたか? 聴衆:私は何をすべきか? ANDI PENG:すでに それは実際の年齢前です。 クリスタベルは、ニューヨークに行ってきました。 私がここに宿泊されたNetflixed。 聴衆:ああ、ええ、私はここにいました。 ANDI PENG:ああ、[OK]をクリックします。 聴衆:私は覚えていません 具体的にどのような。 ANDI PENG:それは大丈夫です。 聴衆:Netflixingおそらく。 ANDI PENG:Netflixing。 うん、それは良い時間です。 OK。 大丈夫。 ご質問の前に 我々は、材料に飛び込みますか? また、我々がしようとしています セクションを通してスピード今日、 カバーするにすぎません。 そして、うまくいけば、我々が得られます ここに少し早いです。 またないお菓子、申し訳ありません。 私は失望だけど、 特にハロウィンの間。 大丈夫。 クール。 だから我々は、について話し始めるとしています コマンドライン引数は、chmodコマンドと呼ばれます。 chmodコマンド、それはすべてがちょうどUnixシステムであります コマンドラインから行っ呼び出し ファイルのパーミッションを変更します。 したがって、たとえば、私たちはしました すべてのページを見つけました このように、おそらくいつか中 インターネットであることの私達の寿命 当社のWebサーバが持っているユーザー、 私たちの禁断の誤差を与えられました。 あなたは、アクセス権限がありません このサーバ上の、yadda、yadda、yadda。 すべてのことは本当に意味します 権限ということです 何に接続されていたこと あなたがアクセスしようとしたページ あなたに開いていませんでした。 だからかなり、chmodコマンド 方法です 我々は、これらのシステムのアクセス権を変更することができます 皆を与えるために、ユーザー、グループ、 世界、またはいずれか、または それらのアクセスの組み合わせ 特定のファイルに、 ディレクトリ、本当に何も、 システム上の任意の並べ替え オペレーティングシステム。 みんなのいずれかがあるのであれば あなたが感じる場合は、コンピュータ 今日は私と一緒に次のような、 完全に物事を入力して自由に感じます に。 ない場合は、あなただけのたむろすることができます。 だから私は実際に引っ張るつもりです 今、私のターミナルまで。 だから、コマンドを実行します chmodコマンド、または少なくともちょうど あなたの権限を一覧表示します ファイルディレクトリは、単にLS-lです。 あなたが見ることができるように、たくさんの ものがそのほとんどをポップアップ 上の私達にとって重要です ここで左辺。 君たちは、RS、WS、1 /の束を参照してください。 うん。 それらはただ本質的に すべてのファイルのパーミッション 何特定のディレクトリを説明します お使いのシステム内のファイルを持っています。 それでは、に戻ってみましょう ここに力点。 だから、ファイル名に加えて、 君たちは右側に見ることができるように、 私たちは基本的に参照するために探しています 左の列だけ。 加えて、だから ファイル名は、我々 ファイルのパーミッションを確認することができ、その 所有者グループ、グループ名、日付 ファイルが最後にあったこと 修正された、エトセトラ。 あなたは、chmodコマンドを使用して、多くのものを見ることができます。 だから我々は、chmodコマンドを読み取る方法は、ということです 私たちはかなり無視する最初の文字 読み取り権限の点から好ましいです。 最初の文字は、ちょうど私達に何を伝えます 私たちがアクセスしているシステムのタイプ。 D、この場合には、 フォルダまたはディレクトリ。 だから我々は、現在、私のワークスペースを知っています セクション7は、ディレクトリました。 そして、次の3つを見ます ただ、基本的にトライアド、 3文字の3セット。 そして、あなたはビットとしてそれぞれ考えることができます。 だから、あなただけの3つのセットを持っています 3ビット、合計9ビット。 次の3つのグループにそれらを扱います。 そう3の最初のグループであります 常にユーザーの権限。 3のあなたの第2のグループがあります 常にあなたのグループのアクセス権。 そして3のあなたの第三組 、常に世界のようです どこでもアクセス権。 だから私は簡単に推測します 尋ねる質問があるものです ユーザーとグループの間の差。 主な違い ユーザーとグループの間 ユーザーはあなたが個人的にだけであるということです それが今は何でもアクセスします。 あなたは複数持っている場合は、グループをすることができます 例えば、1台のコンピュータ上でユーザ、。 それらのすべては、グループとして扱うことができます。 そして世界があります 公正な世界、みんな。 どのように我々はことができるように、我々は上に後から見ることができます 異なるアクセス許可にそれらを変更します。 私たちがしている、だから、かなり まだ集中するだろう 左、上の部分に ディレクトリCS50のために私たちは、drwx参照します rはちょうどそれが読みやすい意味します。 wはちょうどそれが書き込み可能であることを意味します。 そして、Xだけ それが実行可能であることを意味します。 あなたは親切なことを思うだろう 意味がありません。 これは、電子する必要があります。 しかし種類の実際にxは 少し良く動作しますが、 あなたは良いことを覚えていますので。 あなたは物事の3つのタイプがそう 行うことができます、あなたはどちらのファイルを読み込むことができ、 あなたが書き込み権限を持つことができます ファイル、またはあなたが権限を持っている可能性が ファイルを実行します。 だから、実際に我々の方法は、 ビットのものを表します 番号4,2、及び1です。 だから、読みやすいものです 4の数で表現。 書き込み可能なもの 2で表されます。 実行可​​能だと何も 1で表されます。 したがって、この意味では、我々はまた、することができます これらnumbers--を表します こんにちは、別の方法で、歓迎します。 ごめんなさい。 誰も前に、私はするつもりです 皆を代表して謝罪 今クラスに入ります。 今日はお菓子を忘れてしまいました。 私は失敗すみません ハロウィーンの今週。 私は二重の量をもたらします それを補うためにお菓子次回。 しかしとにかく、残念 その男について、申し訳ありません。 その私たちができるような方法実際に入力 私たちのコマンドに引数は我々です chmodのグループスラッシュの権限を行うことができ、 グループはちょうど何であります グループは、我々が変更しようとしています。 および権限があります 我々はそれに追加するものは何でも。 ですから、例えば、 プラスの権限を追加し、 そして、減算は、権限を奪います。 そして、グループの種類は、私たちは私たちのAを持っています すべてのため、uのユーザのために、グループのグラム、 または他人のために、O。 それは、今少し抽象的です。 しかし、我々はいくつかの例をあげて行きますよ ちょうどこの実際に素早くを実証します。 これについての良い誰も スライドので、私は上に移動することができますか? クール。 ですから、例えば、rwxの。 我々はそれが何を表すかについて話をする前に、 最初にすべてのrwxの何を意味するのでしょうか? あなたは、この特定のことを確認した場合 ファイルは、RWXの権限を持っています それはどういう意味 人が行うことができるだろうか? 観客:読み取り、書き込み、実行。 ANDI PENG:うん、まさに。 あなたが書き込みを読み出して実行することができます。 これらの3つのすべてのために 文字が存在しています。 我々は話先に行くとあれば この程度のビットの観点から、 RWXはまた、700のように表すことができます。 あなたがいずれかで見ることができるようにため、 ファイルディレクトリのアクセス許可の種類、 3トライアドがあります。 この場合、最初の トライアドが何かを持っています。 したがって、この場合には、rが4であり、 wが2であり、xは1です。 あなたが一緒にそれらを追加する場合は、7です。 だから、あなたが変換する場合 それはバイナリに、それは700です。 7ので最初のトライアドです。 0、現在のものはありません 二トライアドインチ そして、内に存在するものはありません 第三のトライアドは、ので、それはまた別の0です。 トライアドの束は、同じ意味でそう ただ、単にビットで表現することができ バイナリでも同様。 だから700は、まったく同じことを意味 権限の面ではrwx ------。 その上で明確な誰? クール。 そしてそうはchmod 111は与えるだろう ファイルにどの権限? みんなにあなたのカップルを与えます これを変換する秒。 、最初のを覚えています トライアドは、ユーザーのためのものです。 第二のトライアドは、グループのためのものです。 そして第三にトライアドは皆のためです。 そしてそうはchmod 111は与えることになります 権限の誰にタイプ? に数秒を取ります それについて考えると戻ってきます。 うん。 聴衆:だから誰もがそれを実行することができます。 ANDI PENG:うん、まさに。 聴衆:しかし、誰も読まないか、書き込むことができます。 ANDI PENG:そして、お気軽に 皆に説明するために どのようにその結論に達しました。 聴衆:まあ、ユーザーのために、 グループは、世界では、それは、すべて1です これは、実行可能のコードです。 ANDI PENG:うん、まさに。 そこで図1に示すように、この場合には、私たちが知っているすべてです それが実行可能コードです。 読み取りが4であるため。 書き込みは2です。 そして、実行可能ファイルは1です。 だから、すべての3つのトライアドが1あるあります その世界に、ユーザーに意味、 グループに、彼ら すべての実行可能です。 それで良い誰? OK。 そして、第2の方法 私たちが実際にできること これはまた、あなたは書き込み ただのchmodを行うことができます プラスX。手段のすべてまたは皆。 プラスに権限を与えることを意味します。 そしてxは実行可能ファイルを意味します。 だから、2つのコマンドがあります 実際に同じです。 だから、あなたが実行したい場合 ご使用の端末では、この、 あなたはchmodの111の名前を行います ディレクトリやファイル。 それとも、プラスXます。chmod行うことができます ディレクトリのファイルの名前。 同じことは、単に簡単な方法、 おそらく、表すために、一部または変更のために ファイルのパーミッション。 chmodコマンドで一人一人OK 我々は上に移動する前に? クール。 だから今、私たちはに向かうつもりです 非常に抽象的な概念のいくつかのスライド 私はかなりだと そよ風に行きます。 そして、それはあなたの場合、完全にOKです すべてを理解していません。 今でも、私はまだ本当にありません 完全にすべてを理解しています。 しかし、それは得ることの多くはで トップレベルの理解 これらの事のいくつかはどのように動作するかの。 だから我々は話をするつもりです すぐに、TCP / IPに関する、 ただ伝送制御これは プロトコルは、インターネットプロトコルを大幅に削減。 講義を思い出し、 ダビデは、彼はあなたを教えました 彼は合格したいの例 封筒ノート 講堂の上部を好きにアップ! だから、法律学校の講堂で ダビデは、本質的に実証しました どのようにTCP / IPがで働きます すべてのそれの意味 そのデータを確保する手段があります サーバー全体に配信されています またはインターネット上の。 封筒の例では、そう メッセージ、最後にユーザー ああ、私がするのに必要なことを見ることができました 情報の4つのパケットを受信します。 しかし、私は実際には3つだけを受けました。 それは私が一つ欠けてなければならないことを意味します。 そして、もう一つは配信されませんでした。 だから、TCP / IPインターネット上で、 お使いのコンピュータとサーバを介して、 まったく同じことを行います。 それがないすべてが指定され 失われたデータフレームワーク パケットが再送し、受信することができます。 あなたがしようとしているインターネット上のように オンライン・ファイルにアクセスしたり、ファイルを送信します お友達へのまたはウェブを見て ブラウザ、何千 十億の 情報バイト ミリ秒ごとに転送されます。 そして、それは本当に、本当に混乱です。 そして、それは本当にハードにです 実際に送信されているものを知っています そして、何が送信されていません。 だから、TCP / IPだけを指定します 凝集フレームワーク これはあなたのウェブで ブラウザとサーバー 種類の通信が可能 相互に、わずか パケットがあることを確認してください すべてここに何も失われました あなたが要求し、すべてのデータ 実際に正しく表示されています。 ちょうどその非常に[OK]をみんな 簡単な高レベルは理解できますか? クール。 それでは、私たちは移動するつもりです HTTPの話に、どの 単にハイパーテキスト転送プロトコルです。 HTTPは、それがすべてではどのような任意のページです またはファイルがあなたのウェブサイトにアクセスされ、 サーバーは、HTTPを返します。 応答のステータス・コード リクエストにそれを確認すること いずれか、ああ、この要求が通過しました。 そして、すべてが正しく表示されています。 あるいは、ああ、いや、404。 何かが間違っていました。 ああ、私は表示できません。 それはすべてが何であれ、その あなたがアクセスしようとしています、 ユーザーがアクセスしようとしているように使用し、 internet--にだけ確認すること あなたのいずれかが成功していることを それがあったかどうか何でもアクセス 成功し、それが何であってもアクセスします。 だからHTTPステータス コー​​ドはあなたを提供 かどうかを知ることができるという手段 またはそれが成功したかではありません。 それで例えば、例要求。 あなたはそれがだ、ここで見ることができます 通常、一般的に4つのライン。 私達はちょうどであるのGET HTTP 1.1を、持っています メソッドのリクエストURL、プロトコル バージョン、フィールド名、 そして、フィールドの値。 だから、必要ないと完全に ここで何かを覚えます。 ただ種類の習熟 これらがどのように見えるかを自分で。 この例では、メソッド要求 URLはちょうどあるものは何でも要求 サーバーを送信しています。 ちょっと、同様に、サーバー、私が本当にしたいです アクセスyadda、yadda、yadda、HTTPページ。 プロトコルバージョンは、ちょうど何でもあります バージョンホストまたはサーバー 情報へのアクセスに使用されます。 フィールド名は、ウェブサイトまたはあります あなたがアクセスしようとしているURL、 この場合は、www.apple.com。 そして、フィールド値があります ただ一般的に、値に名前を付けます。 そして、それは組み合わせの任意の並べ替えすることができます 文字や数字または任意の。 そこで、一般的な要求なので、 何実際にあなたのコンピュータ ちょっと、と言うのサーバに送信し、 あなたは、私はこれが表示された必要なものを知っています それは、要求のようなものです 彼らが実際に受け取ること。 何の例応答 サーバはあなたに戻って送信します ほとんど同じことになり、 上部のステータスコードを除いて。 だから200は、2 0 0は常にあります [OK]のステータスコード。 同様に、[OK]を、この要求が通過しました。 あなたはアクセスすることができました 正しくすべて。 人生は良いです。 人生は結構です。 すべてが完全に良いです。 そして、これはちょうどあなたのブラウザに指示し、 サーバーは、ちょっと、すべてが良いことです。 私は必要なすべての情報を得ました。 クール。 しかし、問題はあります 時々問題が出てきます あなたが最後have--とき、私は思います 私は重複について話しました。 あなたは、あまり良い反応を持っています。 ですから、例えば、404 ページが見つかりません。 あなたは時々、禁断のアクセス権を持っています。 あなたは他の様々な持っています 私はステータスコード あなたがいるときは、すべて見てきたことを確認 インターネットの研究をやろうとしています。 そして、あなたのブラウザがあなたを与えます いや、アクセスすることはできません。 そして、あなたはよく、がらくた、似ています。 だからかなり、あります いくつかの非常に一般的なステータスコード。 たぶん慣れます どれのものがあります。 そのおかしな1 私は私が今まで聞いたと思います あなたに起こる場合of-- それらのすべてを検索 オンライン、何らかの理由であります 実際に本物のステータスコード 私はティーポットだ418と呼ばれます。 私はどこにGoogleで検索しました これの起源はからでした。 そして、どうやら1エイプリルフール カップル数十年前の日、 誰かがそれは陽気だろうと思いました 418と呼ばれる新しいステータスコードを作成します 私はティーポットです。 合法的に、この名 コー​​ドは、私はティーポットだと呼ばれています。 私はあなたが持っているものページ忘れます 実際にこの表示をするために行きます。 しかし、どうやら、あなたが実際にすることができます 私はステータスコードを取得 何とかティーポット 何かを通じ。 だから、何百もありますし、 ステータスコードの数百人。 そのうちのいくつかは、より多くを作ります 他よりも感覚。 しかし、ほとんどただ慣れます 最も一般的なものを自分で。 要求されたエンティティボディがあります 明らかに、短いとスタウト。 だから、時にはそれ以上が存在します 私よりも恐ろしいのエラーはティーポットです。 しかし、これは私が推測するものです あなたが種類のヒットを願っています。 しかし、私はあなたがするとは思いません。 ただ状況の良いみんな コー​​ド、要求、プロセス、意思 必ず情報が適切に配信されますか! だから今、私たちは、移行しようとしています セクションの楽しい部分、今日の中に、 ここで、我々は、HTMLについて少し話しています。 HTML、すべてのそれはハイパーテキストです マークアップ言語。 それはちょうど標準語です あなたは、すべてのWebを作成するために使用します インターネット上のページ。 だから、任意のWebページ、何 お気に入りのWebページ? お気に入りのWebページとは何ですか? 聴衆:[聞こえません]。 ANDI PENG:申し訳ありませんか? 聴衆:Tumblrの。 ANDI PENG:Tumblrの。 だから、Tumblrのは、HTMLで記述されています。 そして、私たちが実際に通過するだろうと これらの事のいくつかで遊んで 後で。 ほとんどすべてあなた 知って、学ぶ必要があります、 おそらくすることができますHTMLを書くために インターネット上のGoogleだけ。 HTMLは、Cのようなプログラムではありません あなたは、変数を作成して行うことができる場所 それでクールなもの。 それはちょうどより多くのですが、ああ、これはどのようです 物事は私のウェブサイトに表示します。 そして、私はちょうどそれを置くつもりです。 そして、それはそれのスタイルになるだろう。 そこでHTMLは、ある意味で、それだけのようなものです 書式やテンプレート言語。 それははるかに簡単です。 それは、学ぶことは非常に簡単です で書くのは非常に簡単 あなたの典型的なプログラミングより 言語、非常に簡単に、 非常にユーザーアクセスとフレンドリー。 だから我々は、実際にプレイするつもりです 周りに、今日の私たち自身のページを作成します。 我々が開始する前に、しかし、私はちょうどしたいです いくつかの簡単なベストプラクティスを越えます。 HTMLは、簡単であるため 言語とさえ理由 あなたはカップルの事が間違って行う場合には、 それは、時には気づかないかもしれません 私たちがしていることを確認します 実際に私たちのベストプラクティスに付着 必ず物事がそのことを確認します 周りに行くことができたが、 常に正しい行かないするつもりはありません 彼らは最小化していることを確認してください。 だからかなり多く、確認してください あなたは、すべてのタグを閉じます あなたは、HTMLで書いているとき。 あなたが開いている場合 、あなたがしているボディメイク どこか体でそれを閉じます。 あなたは必ず、あなたのことをしたいです Webページには、使用して検証します 何がW3バリと呼ばれています。 あなたは、オンラインだけでGoogleのことができ、 それへのリンクがあります。 そして、あなたがしたいです 別のHTML、どの あなたのスタイルから、あなたのマークアップ言語であり、 CSSの言語デビッドはあります 我々はまたしていることを実証しました 講義でビットを再生するために行きます。 クール。 だから、いつでもあなたが実行したいです CS50アプライアンス上のHTML、 我々は実行するつもりです プログラムは、Apacheと呼ばれます、 これはすべてそれだけで構築されています Webサーバ、そのCS50の皆様 へのアクセス権を持っています。 我々は、それがちょうど私達のでapache50呼び出します CS50のすべて50を呼びたいです。 だから、あなたはCS50ウェブを開始方法 サーバーは、あなたのコマンドに入力しています 行は、ドットを開始apache50。 そして、あなたは任意の時にそれを終了したい場合は 時間は、あなたがapache50ドットを終了しないでください。 そして、あなたは単にEnterを押します。 そして、それはすぐにここに見出しする必要があります。 うん。 だから、僕はすぐにオーバー行くつもりです 本当に簡単なWebページの例。 そして、私たちは過ごすつもりです 10のように、15分の演奏 周りの私たち自身のウェブページを書きます。 OK。 だからここIDE--で 誰もがそれを見ることができますか? あんまり。 ここでは、ズームインします。 私はこの簡単なテンプレートを持っています ここで実際に何も。 私達はちょうどすぐに書くつもりです ただで我々のHTMLプログラム 世界に挨拶。 C言語でのように同じことを、今、私たちがしています ちょうどHTMLでそれをするつもり。 誰もがちょうど実際にしたいん あなたは私の最初のものを与えてみてください HTMLドキュメントに配置する必要がありますでしょうか? うん。 聴衆:ブラケット、[聞こえません]。 ANDI PENG:うん。 だからと非常にユニークな何か 一般的に、伝統的に私たちのHTML 他のコマンドでは発生しません ライン・レベルのプログラミング言語 その私たちが実際にあります ファイルの種類を指定します これがあることを行っていること 我々のコードの上部にあります。 したがって、このinstance--に私は思います それは右、右のコマンドですか? うん。 上部には、あなただけ含めます 括弧内の強打のDOCTYPE HTMLだけ お使いのコンピュータに伝えるために、ちょっと、外を見ます。 HTML文書が来ています。 そして、我々はどのようにしたいです 私たちのファイルを始めるには? 私たちは挨拶したい場合は、持っています 世界に挨拶ウェブページ、 どのように我々はこれを構築して行くのですか? 実際には、のは、Googleに回してみましょう。 そして、我々は実際にこれを行うことができます。 うん。 そうしよう。 HTMLそう。 あなたが見ることができるように、私のブラウザは実際にあります 自動的に私のためにこれをスタイリング。 C、あなたのように同じこと オープン中括弧を作成し、 お使いのブラウザは自動的に 近くに中括弧で追加されます。 幸いなことに、私たちのIDEがするのが大好き 同様に、私たちのためにこれを行います。 だから今、私たちは一種の入力することができます タグの開始、 そして、それは常に私たちを伝えるために起こっています タグの終わりを入力することを忘れないでください。 私はこれが大文字する必要があると思います。 そして、我々は常に、追加したいです、 タイトルであるヘッド。 私たちは、もしかしたら電話をかけたいです このハロー、その後ボディ。 そして、そこに行きます。 それは実際に私たちのHTMLドキュメントです。 だから、方法、その任意のHTMLドキュメント いつも同じことin--スタイル設定され int型メインボイド。 あなたはいつも持っていたいです オープンとクローズタグをHTML あなたのコードの上下にあります。 あなたは内部の頭を持つようにしたいです これだけで何でも、タイトルが含まれています ウェブのタブを表示しようとしています ページ、次にその内部ボディ 実際にコンテンツを表示します あなたがしたいものは何でもの。 ですから、実際に実行したい場合 これは、私はピンを見るにはズームインするつもりです。 あなたが実際に開始することができます ドットを開始apache50。 クール。 そして、あなたは今、見ることができるように このリンクは、ポップアップしています。 それはあなたのサイトが今で言います 以下のいくつかのリンクでご利用いただけます。 だから、私たちのすべてのIDEがdone--ています ないIDE、ええsorry--、 行っている私たちのIDEには、Webを作成することです 当社のウェブページのリンク、その上にすべての サーバ上でアクセスすることができます。 それでは、ここで見てみましょう。 hello.htmlに行く、のは、これをクリックしてみましょう。 そして、あなたは非常に単純なを参照してください ハローワールドのためのWebページ。 OK。 私たちは、実際に行っているだけ ええeveryone--、アップ何がありますか? 聴衆:私は基本的な質問があります。 ANDI PENG:うん。 聴衆:どのように保存できますか HTMLとしてファイル? ANDI PENG:うん。 だから私は、新しいファイルを作成した場合、 私は新しいファイルをすれば、Untittle、私がしなければ、 section.html、ブーム、 それは私がしなければならないすべてです。 聴衆:[聞こえませんか]? ANDI PENG:いいえ 聴衆:[聞こえません]。 ANDI PENG:いいえ 聴衆:[聞こえません]。 ANDI PENG:うん。 上の拡張子、かなり あなたのIDE内にあるファイル、 それがいることを、コンピュータに指示します ブラウザは、ちょっと、外を見るように指示します。 これは、コードになるだろう この言語で記述されました。 ですから、例えば、マイクロソフトで ワード、すべてのWord文書が何をすべきか 、どのような拡張子で終わりますか? .DOCまたは.docxに、右か? しても、そのすべてがに指定され お使いのオペレーティングシステム、ちょっと、 あなたが来るのWord文書を持っています。 言葉でそれを開きます。 PDFファイルと同じこと。 それは私が必要とする、ああ、知っています このファイルを開くために Adobe ReaderまたはAdobe Acrobatのと。 だから拡張機能が動作し お使いのコンピュータと同様に。 あなたのコードページを指定した場合 HTMLと命名される、それは知っています、 ああ、あなたは、HTMLコードを持っています。 私は、HTMLコードとして扱うつもりです。 だから、その意味でスーパースマートです。 だから誰もが、のは、10分のように見てみましょう ちょうど私たち自身のウェブサイトを作成します。 のは、素敵なものに追加してみましょう。 あなたが好きと言ってお気軽に。 私はちょうどそれを確認します みんなのサーバが正常に動作しています 我々はPSETにあなたを解放する前に。 そのため、サーバーの場合 PSETのために実行していません、 それは本当に、本当に悪いとなります。 私は周りに浮いするつもりだと 全員が取り組んでいるものを参照してください。 調子はどう? 聴衆:私はちょうど私のコンピュータになりました。 ANDI PENG:それは大丈夫です。 聴衆:[聞こえません]。 ANDI PENG:ちょうどあなたのIDE。 うん。 聴衆:[聞こえません]。 ANDI PENG:それはOKです。 聴衆:[聞こえません]。 ANDI PENG:完全に罰金。 誰もがアクセスしています 自分のWebサーバーOK? apache50は、[OK]を実行していますか? 私はいくつかの中で考えます 他のセクションは、我々 人ではないとの問題がありました サーバにアクセスすることができます。 うん。 だから、あなただけapache50実行します スペースは、スペース期間を開始します。 聴衆:[聞こえません]。 ANDI PENG:うん。 良い? 聴衆:[聞こえません]。 ANDI PENG:ああ、[OK]をクリックします。 だから、スペースを持っていることになっています。 だからapache50-- 聴衆:私でした。 ANDI PENG:--startスペース。 聴衆:ああ、スペースドット。 ANDI PENG:うん、スペースドット。 そこに行きます。 だから、あなたが持っている場合 作成したHTMLページ、 次に、あなただけの直接接続できます。 それが指定したリンクへ。 そして、あなたはそれにアクセスすることができる必要があります。 誰もがする​​ことができました [OK]を自分のWebページにアクセス? 聴衆:[聞こえません]。 ANDI PENG:ああ、それは大丈夫です。 聴衆:[聞こえません]。 ANDI PENG:うん。 私はあなたが実際に開くことができると思います お使いのブラウザは、ブラウザ内でそれ だけではなく、あなたのIDEブラウザ。 あなたはそれをコピーして貼り付ける場合ええ、私は思います。 聴衆:そして どのように我々はそれをオフにするのですか? [聞こえません] ANDI PENG:ええ、あなたが apache50ピリオドなしで停止します。 うん。 聴衆:[聞こえません]。 ANDI PENG:ピリオドなしで。 うん。 そうしよう。 うん。 我々は独自のWebページを作成しています。 聴衆:ああ、涼しいです。 ANDI PENG:うん。 聴衆:私は質問があります。 だからapacheの50-- ANDI PENG:50、ええ。 聴衆:[聞こえません]。 ANDI PENG:何? それは奇妙です。 それが問題のようなものだった、参照してください。 それは前に起こっていました。 OK。 セクションの後に私を参照してください。 我々はいくつかを持っているので、 サーバーの問題。 そして、あなたがしたいです サーバーがあることを確認してください PSETを開始する前に実行しています。 あなたがそれを必要としているため。 うん。 されていない誰にもあります そのサーバが起動するように取得することができますか? 追加したい人のために あなたのWeb​​ページへの追加のスタイル、 我々は実際に何を行うことができます ダビデは、同様に講義でやりました 追加のスタイルを作成するあります ドットCSSのシート、カスケード スタイルシートと実際にだけでそれを追加します。 したがって、たとえば、私はちょうど作成しました かなりのほぼ正確に同じ1 ダビデは講義でやりました。 あなたはかなり本体だけを行うことができます。 あなたは、タグと呼ばれるものを持っている中で あなたはどのようなセクションIDEに適用することができます あなたはあなたの内にしたいです HTMLページへの実際。 あなたは、ページの本文には、そう テキスト整列センターを行うことができます。 そして私は、創造よ 内部タグと呼ばれるトップ そのうちの私はこれらの事をしたいです より大きな画素サイズを割り当て、発生します フォントのため。 私は、フォントの太さを太字にしたいです。 そして、私は色がしたいです ちょうど任意の、青に 私が選択することを決定した値。 私は真ん中と呼ばれる別のタグを作成することができます。 フォントサイズは​​、それは少し小さくします。 そして、私は別のタグを作成することができます 私は、フォントサイズを必要と呼ばれるボトム まださらに小さくすることができます。 だからかなりこれは単なる例であり、 ソースコードまたはソーススタイルシート それだけでGoogleに非常に簡単だということ。 あなたが言う場合は、ああ、私は私のフォントをしたいです イタリック体と緑の濃いします、 あなたはおそらくGoogleは、することができます そして、それはあなたを教えてくれます 適切なタグまたはIDを作成します。 だから、あなたが実際にするような方法は、 種類のHTMLドキュメントでこれを持っています またはそれはあなたが持っているすべてで使用 ここで行うには、頭にあります スタイルシートへのリンクを追加します。 だから、あなただけのhref等号をリンクすることができます あなたのスタイルシートの任意の名前 です。 そして、関係 スタイルシートです。 限り、任意のHTMLドキュメント内 あなたはこのドットCSSのシートを含んでいたように、 あなたがアクセスできるようにする必要があります そしてそこ特性を有しています。 したがって、たとえば、ここで私はちょうどしました 別の例示的なウェブページを作成します。 これはCS50セクションに歓迎されています 2:00から私と一緒に午前3時30分に火曜日。 そして私はそれを美しい画像を追加しました 我々は、潜在的に見ることができるはずです。 ですから、ここで見てみると、 あなたがstyle.htmlに行けば、 私たちは子猫でWebページを作成しました。 子猫ので素晴らしいです。 だから、画像を追加するだけで、SRCのリンクをのimgています。 あるかどうか、かなり 特徴の任意の並べ替え あなたに追加します website--それでは、言わせて あなたはメニューを追加します または検索バーなど image--はちょうどGoogleがそれを行う方法について説明します。 そして、あなたはちょうどその形式でウンチ。 そして、あなたができるだけでかなり はるかだけでそれを追加します。 それは本当に、本当に簡単です。 我々は独自に作成しています 今のWebページ。 あなたがしたい場合は - 聴衆:[聞こえません] ANDI PENG:申し訳ありませんか? 聴衆:[聞こえません]。 ANDI PENG:ああ、 divがちょうど部門です。 ああ、私が持っている、ことを私に言って 呼ばれる特定のセクション 私は適用していている途中 その後、私のCSSのタグ、および 底部と私の他の部門。 それはそれはあなたを語っていますすべてです。 それは維持するために素敵なので ためにはきちんとしたものを、 そうプログラムを実行する方法を正確に知っています。 そして、私はこれをコピー&ペーストすることができると思います 私の実際のブラウザにも同様に。 それは問題ないはずです。 うん。 わーい。 だから、誰もがちょうどしたい場合 Webページを作成してみてください、 我々は別の2〜3分かかります。 私はちょうど確認します みんなのサーバが実行されています 誰もが持っています これを行う方法のアイデア。 あなたたちがしたい場合は あなたのコンピュータを取ります。 まだ動作していませんか? 聴衆:私は[聞こえない]です。 ANDI PENG:たぶんだけでなく50を更新してみてください。 うん。 聴衆:[聞こえません]。 ANDI PENG:うん。 あなたは新しいを開始だから方法 IDE上のWebサーバだけです apache50スペース​​開始スペースドットを行います。 私は念のためたかったです みんなのサーバは、[OK]を実行しています。 聴衆:ここでは、端末の? ANDI PENG:うん。 聴衆:[聞こえません]。 ANDI PENG:Apacheの。 実は、私はあなたがいると思います すでに何かを実行しています。 ええ、あなたが実際にしています 別のサーバーを実行しています。 うん、あなたは良いです。 限りそれが働いているように、あなたはOKです。 聴衆:[OK]をクリックします。 ANDI PENG:2あり サーバーを実行する方法。 だから限りの方法の一つとして、 働いている、それはすべての権利です。 私たちは別の分を取りますよ だけの種類のアップを終了します 何の最後の仕上げ Webページ君たちが作りたかったのです。 誰もが道によって動作していますか? みんなのサーバであります あなたのため以外に実行していますか? 我々はそれを把握します。 また、HTMLのかなりシンプル。 だから私たちはすべての良いだと思います。 うん。 私は戻ってくるだろう。 聴衆:[聞こえません]。 ANDI PENG:[OK]をクリックします。 観客は:だからそれだけです アップロードするために始めました。 ANDI PENG:心配はありません。 そこでHTMLは、そのソースコードがあります セクションの後にオンラインになります。 また、ダビデは全体を持っています オンライン束としても。 それを超えるだけの種類の一目へ HTMLページが書き込まれているかを確認。 それはかなり簡単です。 あなたが知らないもの、あなたはかなり 多くのGoogleだけ、あなたは良いしています。 私はちょうどそれを確認します あなたのサーバが実行されています。 観客:それは多くの場合、これを実行していますか? ANDI PENG:それは私に起こったことがないです。 私はそれがあっても休止状態でした知りませんでした。 聴衆:[聞こえません]。 ANDI PENG:私は思いますeveryone-- 鉱山は前に休止したことがありません。 そして、私は理由を知りません。 それは奇妙なことです。 聴衆:[聞こえません]。 ANDI PENG:あなたは冬眠されていますか? 聴衆:[聞こえません]。 ANDI PENG:うん。 観客:それはOKです。 一度だから、オープンです。 ANDI PENG:[OK]をクリックします。 私たちはいくつかのサーバーに対処します セクションの後の問題。 あなたは問題ないはずです。 、あなたは確認するが、 あなたが去る前にそれらを解決します。 サーバーの場合ので、 実行していない、あなたがしています 行うことができるようにするつもりはありません PSET、PSETの任意の部分のように。 だから、確認します そのことを取り組んでいます。 クール。 大丈夫。 別れの子猫を言います。 私が探して長い時間を過ごしました 置くためにその子猫の写真。 だから、とにかく。 聴衆:[聞こえません]。 ANDI PENG:申し訳ありませんか? 聴衆:[聞こえません]。 ANDI鵬:私はそれがウェブサイト上だと思います。 スペック気に入りましたか? 聴衆:[聞こえません]。 私は仕様がちょうどだと思います 週7でオンライン。 私も、それはpset6と呼ばれると思います 私たちは週7にしているが、これは ビット・コンピューティングです。 聴衆:しかし、私は意味、あなたの場合 あなた場合at--見てみたいです 私たちのバージョンをプルアップしたいです 私たちの断絶からのウェブサイト? だからserver.cのように右、PSETのですか? あなたがこれを見たい場合は、 それはチェックアウトする方法のような? ANDI PENG:ああ、実際にそう PSET、我々がやっているすべての ここでは、ここにimplementing--です 私はこの簡単にかけて行きますよ。 ちょうど得て皆のためそう セクションに、あなたたちは幸運です。 非常に少ない材料があります 実際に、今日カバーします。 私はちょうど次を過ごすつもりです PSETのヘルプ上で行く20分。 いくつかの便利ながありますので あなたの人生に役立つ機能。 そして、うまくいけば、我々はアウトになるだろう ここでの20分のようです。 OK。 だからpset7が間違っています。 私たちは週にしているにもかかわらず 7は、それが実際にpset6です。 私はそれを変更します。 我々はpset6でやっているすべての Webサーバーを作成しています。 それは超怖い聞こえます。 そして、特にそれらのための すでに持っているあなたの 配信コードを見て、 多くのコード、コードの多くがあります。 しかし、完全にOKです。 核心ザラザラため、 実際に作成の一部 サーバーは、私たちによって行われます。 すべてのあなたが本当に求められています このPSETの観光 ただ、いくつかの文字列操作を行うことです ファイルのI / O。これは、実際のです かなり単純なような。 ですから、最初that--誰をダウンロードするとき ここで実際に既にダウンロードされています PSETと表情を撮影しましたか? 大丈夫。 うん。 コー​​ドの500行と同じようにあります あなたのようになるだろうしていること、 何が起こっている? そして、それは完全に罰金です。 あなたはウォークスルーを見ていることを確認します。 ダビデはand--ので、私は知りません。 私はそれがZamylaの、この一つだとは思いません。 しかし、私は他のいくつかの思い ウォークスルーはかなりあります の面で役立ちます ちょうどあなたが知っているさせます 何があなたのコードの中で起こっています。 そして、それは完全に大丈夫です。 ので、あなたがしている4つの機能 実装するように求め、実際に持っています 実際のサーバーを行うにはゼロ。 彼らがしなければならないのはただであります 別の文字列を解析し、 文字列を検索、 必ず物事がやってされていることを確認します 彼らは何をやっていることになっています。 だから、その旨を、あります いくつかの非常に、非常に便利な機能、 特に文字列の 操作、我々はすべての必要があること 私はと思ったことの上に行きます あなたたちのために非常に便利です PSETを試みる前に、学ぶために。 そして、彼らはすべて含まれています あなたのstring.hのライブラリ内。 おそらくより便利あります 私はここに含まれていない機能、 私はどちらかを使用することはありませんので、または 多分私はちょうど彼らが存在して知りませんでした。 student.hを通じて一目にお気軽に。 たくさんがあるように起こっているので 非常に便利な機能の。 私は私の中でほとんどを使用だから6 私はこの一週間、それをやっていたのpset strtokは、strchr、strrcherであったが、 strstr、strcasecmp、およびstrcpyの。 だから最後の2つに見えるかもしれません あなたのほとんどにかなり精通して。 筋力の場合はそれがないすべてが比較され、比較します 文字列が等しいかどうかのためにそれらをチェックし、 場合を含みます。 そして、ちょうどコピーをstrcpyの バッファに1つの文字列。 だからそれら二つはとても思えなければなりません この時点で皆さんに馴染み。 我々は彼らに多くを使用しましたので、 特に最後のpsetのため。 おそらく、しかし、最初の4つの あなたは今まで見たことがありません。 しかし、私はちょうどそれらを歩くつもりです。 彼らはあなたの生活をするつもりだので for--簡単ではありません本当に、本当に簡単に、 この次期のpsetのためではなく、はるかに簡単。 OK。 だから文字*、これは関数はstrtokです この関数の定義が含まれています 文字列、時間ライブラリ内。 あなたは、文字の入力が与えられている場合* 単なる文字列である文字列、 または一定のchar * deliminator、略してDELIM、 すべてのそれは大きな破壊されてやっています 私たちが呼んでいるもののシリーズに文字列 特定の値で区切られたトークン。 だからある意味で、私があった場合に得ることができます あなたは、これは文字列で、section.7.php。 私が合格した場合だからそれは次のようになります このように私のstr内の、私のchar * strの、 私deliminatorはドットであれば、すべてこの どうなる文字列を検索します。 そして、最初の時間は、ドットを見て、 それだけでポインタに戻ってきます 最後に見つかったトークンへ この前の文字列です。 だから、右のここに行くだろう。 そして、それはちょうど私を7.php与えるだろう。 そして、私は呼び出しした場合 機能1より多くの時間、 それは私だけの.phpを与えるだろう。 だから、すべてこの機能がやっています 大きな文字列を破壊され、 小さい文字列に あなたが探しているものに。 だから例えば、中 あなたの外観アップ機能 あなたは何を見たい場合 特定の文字は、約来ます またはドットが起こるか、拡張子が起こる場合には、 この機能は非常に有用であろう。 うん。 心配ない。 これは、すべてのbe--ええ、最大何だろうか? 聴衆:だから、最初の行で、 我々は、この例を使用していた場合、 我々はそれに何を入れますか? ANDI PENG:うん。 あなただけ呼び出します strtokは、文字列のカンマでdelim。 そして、文字列はsection.7.phpに等しいです。 そして、あなたはdelimをしています ちょうどドットに等しい可能性があります。 聴衆:[OK]をクリックします。 ANDI PENG:うん。 ただそれだけ。 すべてのこれらの機能はかなりあります 私たちはそれらを介して行く場合も、同様。 彼らはわずかに異なることを行います。 しかし、彼らはすべてするつもりです あなたの人生は非常に簡単にします。 第二の機能は、この1のような スーパー、スーパー、スーパー重要なのは、 ホールドアップthe--です。 おっとっと。 最初のためStrchr検索 ええ、実際にoccurrence--。 Strchrは関数であります 私は間違いなくちょうど渡りました。 だから私が言ったことを無視します 最初の関数のために。 これは、実際にはstrchrと呼ばれています。 それでは、ここで起こったならばです あなたはchar型のCの文字列を与えられました、 それはちょうど与えるだろう それがあったものは何でも。 うん。 だから、STRと考えるました 文字として文字列、およびCHRです。 だから、あなたがしようとしているすべてが検索です charが文字列の中であるため。 そしてそれは、最初を検索 文字の出現 文字列strにおけるc。 聴衆:[聞こえません]。 ANDI PENG:うん。 そしてそれが見つからなかった場合 それは、それはNULLを返すために起こっています。 だから、非常にことになるだろう何か PSETを行うことで君たちのために有用です 、と言う場合は、探していました Wordのように.docx拡張子 文書またはPDF文書のPDFファイル、 あなたはこの種の見て、それを使用することができます その後は何でものための あなたは、ドットを見るたびに、右? だからかなり、あなたの場合 関数を使用してそれを実行し、 それはNULLを返した場合、 その後、あなたはそれことを知っています これを意味し、ドットそれを見つけられませんでした 明らかに、有効なファイルの拡張子はありません。 それとも、それが返された場合 何か、あなたは知っています それはどんなのを返すために起こっています 実際に拡張した後。 持っていたあなたの人々だから 検索を介して探し始めました この機能の解析、 超便利になるだろう。 だから我々は、実際に行っています これを使用して実証します。 君たちは書いてみませんか 関数ブール文のchar * sのこと sがある場合にだけtrueを返します 文とそうでない場合はfalse。 だから、あなたが行っている、ヒント おそらくstrchrを使用しています。 それとも、ただで検索 特定の文字の文字列。 だから文章で、 何文を分離 非文から、 何特定の文字? 聴衆:スペース。 ANDI PENG:スペース、右? だから私たちは、おそらくに行くん ここで、この関数の中で何をしたいですか? 聴衆:[聞こえません]。 ANDI PENG:私たちはstrchrしたいとしています スペースの外観のための文字列。 それは、その後、何かを返す場合ので、 我々は、これは文でなければならないことを知っています。 それは我々がしなければならないことを意味 この文字列にスペースを持っています。 スペースはありませんならば、我々は知っています それは、ちょっと、それは文字列ではないと思います。 それはおそらく本当に長い言葉です。 だから私はあなたにいくつかの男をあげます 分は、この関数を記述します。 うん。 聴衆:あなたが手に入れました ユーザーからこの文字列? ANDI PENG:うん。 だから、これはただの関数です。 だからあなたのメインの関数内で想像 あなたは既にのは、ここに行ってみましょうhave--。 OK。 だから私はどこでこのプログラムを書いています 私は私の主な機能はどこに持っています 私はちょうど2つの文字列を作成しました。 最初のものは、こんにちは私の名前であります はっきりAndi--、文です。 私の第二のものはただであります アンディは、明確に文章ではありません。 そして私はそれらの両方を実行していますよ この機能により、文字列。 私はあなたたちは寒さの文章を書きたいです。 そして、私は、これらの値を格納しています して、ちょうどそれらをプリントアウトします。 したがって、ユーザーであることを考えます 文字列を渡しに行きます。 そして、あなたは本質的になるだろう それは文章だかどうかを把握 それに応じて、trueまたはfalseを返します。 あなたたちは、与えたい場合 親指またはヘッドアップ、ヘッドうなずき、 誰もが開始する準備ができています これは、それが良いだろう。 たぶん、30秒以上のような? 大丈夫。 あなたが試みることができるかどうかを見てみましょう この関数を記述。 だから擬似は私はするつもりですcoding-- 種類の今、この権利を歩きます。 かなり、私たちが知っています 我々が使用する必要があります機能。 私たちは、上の関数を呼び出すするつもりです 私たちの文字列とスペースを検索します。 それが何かを返した場合、私たちはしなければなりません 明らかに、これは文であることを知っています。 スペースがありますので。 その後、我々はtrueを返すつもりです。 そうでなければ、我々はfalseを返すつもりです。 誰もが与えたいと思うん 私のコードの最初の行 私たちは、実際に行っていること これを書くために使用するには? それは実際に難しいです コー​​ドの行にも。 うん。 聴衆:もしはstrtok-S- ANDI PENG:ちょうどstrchr。 聴衆:[声を挟ん] スペースはヌルに等しくありません。 ANDI PENG:クール。 ちょうど右。 誰もがその最初の行を理解できますか? 私たちは、はstrstrを呼び出すするつもりです 検索機能があります スペースのcharの文字列s。 それを見つけた場合、それはに起こっています それがどこにあるかへのポインタを返します。 それはそれを見つけられない場合、 それはNULLを返すために起こっています。 だから、以外を返す場合 NULLの場合は、我々はそれがスペースを見つけたことを知っています。 それは理にかなっていますか? クール。 大丈夫。 私たちが知っているので、もしそれが見つかりました スペース、私たちは何をしたいですか? 聴衆:trueを返します。 ANDI PENG:うん。 trueを返します。 そして、誰かがしたいです 私のための機能を仕上げますか? うん。 そうでなければ、ちょうどそのように。 そして、これをコンパイルしてみてください。 うん。 だから、あなたたちから見ることができるように 出力は、C言語でブール値を覚えています 常にバイナリで表現されます。 1はtrueです。 0はfalseです。 我々はこれを実行した場合 文字列1の機能、どの こんにちは、私の名前のAndi--です その結果、明らかに、sentence-- 真の1にプリントアウト。 ちょうどである第二の1、 単語、結果をプリントアウト 0に、偽です。 方法についての誰も明確な種類 この関数は、書かれましたか? うん。 観客は:我々はまた、代わりに、行うことができます いいえ、0に等しい等しい等しくありません、 それは等しいです、そうですか? ANDI PENG:いいえ strchr関数はあるので。 私はこれにバックアップするつもりです。 だから、戻り値の型は何でしょう 私たちのstrchr関数の? 聴衆:ああ、[OK]をクリックします。 またはNULL。 ANDI PENG:うん。 それはどのようなことを私に語ったchar *です この関数は、返すために起こっています それがポインタになるだろう。 どちらのポインタがあることを行っています それはそれを発見したのはどこを指し、 またはそれは返すために起こっています NULLへのポインタ。 いずれかの状況では、それが起こっています 何かへのポインタを返します。 だからあなたは同一視した場合 これは、0に等しいと等しいです あなたは、コンパイルエラーを取得するつもりです。 それはポインタを返すために起こっているので。 そして、あなたがしようとするつもりです 整数へのポインタを比較します。 そして、コンピュータはありません それを好きになるだろう。 うん、まさに。 クール。 みんな良いですか? そして第二に、私達は行くつもりです strstrと呼ばれる機能を超えます。 これらの場合は心配ありません 機能があなたを混乱しています。 彼らは私を混乱しています。 このように、あなたたちは見ている可能性があり、 それらはすべてほとんど同じに聞こえます。 ただ、いつでもあなたが混乱しています、 string.hのライブラリーを引き上げます。 そして、あなたたちは並べ替えることができます これを通して自分のいます。 そうはstrstr、しても、そのすべてが検索され 全体の他の文字列のための文字列。 だからここでstrchrだけで検索 単一の文字のため、 strstrは、文字列全体を検索します。 だから、私が見てみたかった、私はしないでください 知っている、こんにちは、私の名前はアンディです。 そして、私の親友の名前もアンディです。 私はこの中で探したい場合 アンディの全単語の文章、 私の針があったであろう あなたが探しているものは何でも。 そして、あなたの干し草の山は何でもあります あなたは、それを探しています。 もしそうなら、あなたは探しています 文章内の特定の単語、 その言葉は、あなたの針になるだろう。 そして、文自体 あなたの干し草の山になるだろう。 そしてそれはちょうど検索します 最初に出現しました 文字列の針の 文字列の干し草の山です。 これは、ポインタを返します 最初に出現します。 この場合には、覚えている場合を除き、それはです 文字列全体の最初の出現 あなたが検索していること 以下のためだけでなく、文字。 そして、これはほとんどあり 関数と同じもの 私たちはただでやりました もう少し特異性。 あなたが探しているので、 1文字以上。 使用はまったく同じです 私たちはやった一つとして。 これでOK誰? OK。 最後に私達は行くつもりです オーバーではありませんstrrchr、あります strstrまたはstrchrと混同。 strrchrは、そこに余分なRを持っています。 あなたが入力しているときは注意してください。 あなたは自分自身を含むかもしれません Rなどの余分なRまたはありません、 そして、あなたの機能 仕事に行くのではないしまっています。 そして、あなたは混乱するつもりです。 あなたはスペルしていることに注意してください すべてのこれらの機能は正しいです。 だからstrrchr正確で strchrと同じもの それが最初ではないが検索以外 特定の文字の出現、 むしろ最後に出現しました。 ですから、その意味で、 それはほとんどまったく同じです。 しかし、その代わりに移動します 文字列に転送し、 あなたが移動することになるだろう 後方文字列インチ まったく同じこと、君がいるだけで 異なる順序で検索。 そしてこれは、スーパーかもしれません あなたの検索のための超便利 機能、最初 あなたのpsetの機能。 我々は書くために必要なことをふりをしてみましょう 我々にボイドの拡張機能 一定のchar *ファイル名を渡し、 単なる文字列、ファイル名、 それは、その名前やプリントにかかります そのファイルの拡張子アウト。 例えばだから、私はした場合 pset7.zipの文字列を渡し、 それだけでプリントアウトすることが起こっています .zipの拡張子です。 そして、このために働くだろう 拡張子の任意の並べ替え、 PDFのWordやPDFファイルのための.docx HTMLファイルのファイルまたは.html。 かなり多く、書き込み それを行うことができます機能。 私は実際に行きますよ IDEに切り替えます。 それは我々が行ってそこload--されていません。 だから私はここでやったすべてがあります char *、最初の文字列を作成し、 pset7.zipと呼ばれます。 私は、ズームインするつもりです。 私は2番目の文字列を作成しました finalpaper.docxと呼ばれます。 そして、私に関数を書くときに 呼ばれるだけでプリントアウトしようとしています ファイル名の拡張子。 多分考えるように数分を取ります あなたがこれをやろうとしている方法について。 もう少し挑戦 最後のものよりも、 しかし、利用はほとんどあり まったく同じ。 うん。 だから、機能と呼ばれる拡張機能を作成 その、私はあなたのファイルの名前を付けた場合、 私が与えることをした場合は、私がpset7.zip-- あなただけの.zipファイルをプリントアウトしたいです。 私はfinalpaper.docxようにあなたを与えると、 ただの.docxをプリントアウトし、 どのようなファイルの拡張子だけ。 この実際には 2行のコードをとります。 だからかどうかを確認してみてください 多分それでそれを行うことができます。 実際に、それだけ 1行のコードをとります。 しかし、2つの行は、おそらくより標準的です。 我々は、おそらくどのような関数であり、 呼び出すためにするつもり? 聴衆:strrchr。 ANDI PENG:strrchr、右。 私たちが求めているため、 左から右。 私は君たちを与えていません このような例で、 しかし、私は次のようにあなたの例を与えた場合 www.apple.comと私はちょうど欲しかったです .COMは、それが例になるだろう あなたは最後のインスタンスを呼び出したいです 右、期間の最初ではありませんか? あなたは、コールstrchrた場合は、 あなたapple.comを与えただろう。 あなたがstrrchrを呼び出した場合、それを あなた.COMを与えているだろう。 そしてそうする上で注意してください 私の例でways--、 あなたはおそらく持っている可能性ができました ただstrchrを使用して書かれました、 以来、1ドットのみあります。 しかし、他の場合において、 そうではないかもしれません。 だから、常に設計してみてください ええ、あなたのコードがよく、そうthat--? 聴衆:だからで たとえばあなたが今言いました、 あなたがそれをstrrchr行うときだろう あなたが.COMまたはちょうど来与えますか? ANDI PENG:それはあなたの.COMを与えるだろう。 聴衆:[OK]をクリックします。 ANDI PENG:うん。 それはそれを見つけた場所を指しています。 うん。 30秒多分? うん。 誰も良いか多分少しより多くの時間? 挙手? ヘッドのショー? クール。 誰もが私に最初に付けます このプログラムのコードの行? 聴衆:[聞こえません]。 ANDI PENG:すべてのだから最初、 のは多分これを打破しましょう​​。 だからstrrchrの戻り値の型は何ですか? それでは、戻りましょう。 strrchr、戻り値の型は何ですか? 聴衆:チャー* ANDI PENG:それは、char *は、右ですか? どのあなたはおそらくつもりことを意味 種類に別のchar *を作成したいです 店舗のたびに、それはです 右に戻って? あなたが呼び出す場合ので、 関数strrchr、 それはあなたへのポインタを与えるために起こっています どこそれはその最後のピリオドを発見しました、 右? しかし、あなたがしたいとしています 店のどこかに、右? だから、どのようにコーディングします この私たちのプログラムに? 観客:あなたが作ります char * [聞こえません]。 ANDI PENG:うん。 聴衆:[聞こえません]。 ANDI PENG:strrchr。 うん。 ああ、そこにRを逃しました。 対象:ファイル名[聞こえません]。 それは何ですか? ああ、それはただのです。 ANDI PENG:ああ、それだけのです。 うん、ごめん。 私の悪いです。 例としては一致しませんでした。 聴衆:そして点在しています。 ANDI PENG:うん。 時あなたたちは注意してください ここare--、私はズームインしましょう​​。 そうしよう。 時あなたたちは注意してください 場合は特に、入力しています あなただけの文字をやっています。 それは偶然に本当に簡単です 二重引用符ではなく単一のを行います。 それは動作しません。 あなたのコンパイラは文句を言うために起こっています。 そして、あなたの関数であります ただ実行するつもりはありません。 そしてそうする際には注意すること あなたは物事をやっています それは、一重引用符だ文字で。 だから、この行はありません コー​​ドは、すべての人にとって意味のありますか? 私たちは、char *のポインタを作成しています。 strrchrを返すため ポインタ型の何か。 そして、私たちはstrchrを呼び出すするつもりです 文字列、ファイルでの、上の 私たちが渡していることを、名前を付けます。 そして、我々は最後のを探しています ある期間、インスタンス ちょうど単一引用符は、一重引用符に点在しています。 うん。 聴衆:私たちは、二重引用符を使用しません 私たちは一重引用符を使用するときにしていますか? ANDI PENG:うん。 だから、二重引用符があります ときに常に使用 ちょうど1以上の文字列を持っています。 だから、はstrstrをやっている場合は、 あなた一つがあります 文字列の文字列を検索し、あなた 二重引用符でそれを渡します。 しかし、どのような時間は、それだけです 単一の文字、 あなたは、単一引用符をしたいです。 それは心に留めておくことは良いことです。 だから今我々が持っていること ポインタ、我々はそれで何をしていますか? 私はあなたに人を求めています 右、それをプリントアウト? だから、[聞こえない]、あなたがしたいです 私はコードの行を与えますか? 聴衆:printf-- ANDI PENG:うん。 観客:--youはプレースホルダが必要です。 ANDI PENG:うん。 聴衆:プレースホルダを印刷します。 私はどのような場所がわかりません ホルダーは、それをポイントに過ぎません。 OK。 それでは、その後のためにそれをスキップしてみましょう。 聴衆:そしてcomma-- ANDI PENG:ポインタ、右? 聴衆:ポインタ、うん。 ANDI PENG:だから一種のトリックの質問、 ポインタと文字列に関係しています ことを私たちは一種の既にについて話をしました。 プレースホルダのどのような私たちを行います * charのポインタが必要なのでしょうか? 聴衆:[聞こえません]。 ANDI PENG:うん。 それは、あなたたちはそれが考えているよりも簡単です。 聴衆:文字列? ANDI PENG:それはまさに、単なる文字列です。 文字列を覚えているので 実際には存在しません。 char *が正確です 文字列と同じもの。 だから本当に、これはどのようなものですね すべてに沿って使用されている必要があります。 OK。 我々はこれを実行しようとすることができた場合を見てみましょう。 のは、メイクの拡張子をしましょう​​。 クール。 君たちは私が渡されたかを確認 psset7.zipとfinalpaper.docx、 そしてそれだけでプリントアウト .zipファイルとの.docx? 理にかなって? OKだから私はあなたの外観をアップで考えます あなたがしているあなたのpset内の関数 かどうかを尋ねられたことになるだろう 文字列は、特定の結末を持っています あなたは、特定のエラーコードを与える必要があります。 だからこれはかなりひどいことになります。 あなたが理解できるかどうかため 拡張子が何であるかを、 あなたはそのを比較することができます それは、最大一致するかどうかを確認するために拡張 特定の拡張子を持ちます。 そして、あなたは返すことができます 右のエラーメッセージ、? うん。 聴衆:だから我々はしないでください 1か何かを追加する必要がありますか? ポインタはthe--に行きます ANDI PENG:いいえ。 聴衆:それの後--point。 ANDI PENG:うん。 それは正確に指します どこで発生がありました。 だからここに例えば、私たちはしています 期間の検索。 だから、返すために起こっています 期間へのポインタ。 そして、それは印刷に起こ​​っています タイムアウト期間で始まります。 だから、1を追加する必要はありません。 場合には、完全に罰金です、が、 あなただけの種類に、今までわかりません 自分でそれをテスト。 サンプルプログラムをビルドします。 自分でそれをテストし、 それは印刷だ場所を確認。 それはまたそれを行うには悪い方法ではありません。 クール。 そして、それはほとんどすべてです 今日はあなたたちのために持っていました。 今日はPSETのものをたくさんしました。 だから、疑わしい場合は、のような 私はいつもルックアップ、と述べました このPSET用string.hのライブラリ。 たくさんのがあるように起こっています 有用である可能性がそこに機能します。 いくつかは有用ではないかもしれません。 私は本当に知りません。 それを通してウェイド、あります それらの全体の束。 strstr、strchr、strrchrされています スーパー、スーパー役立つだけでなく、 strcpysとstrcasecmps 我々はすでに使用されたこと。 それはいじりだけたくさんです 文字列、それらが等しいかどうかを判定しています、 文字列の外のものを取得し、 正しくファイルを開くことができること。 これは、ファイルI / Oの多くのです。 PSETは本当に悪くはないのです。 あなたは取るつもりです それを見て、それをダウンロードし、 コー​​ドの全体の束を参照してください。 心配ありません、あなたのコード 実際の書き込みは全く悪いことではありません。 誰もが自分に問題がある場合 サーバは、セクションの後に私に会いに来ます。 ないためにもう一度謝罪 ハロウィンにお菓子を持って来ます。 私は私と一緒に間違っていたかわかりません。 しかし、我々は二重になります キャンディ次回。 そして、あなたのpsetで幸運今週。 うん。