DAVID J.マラン:私はしたいとします プロンプトプログラムを実装する [文字列のユーザーと進み、 それらの入力を大文字にするには、 任意の小文字に変換する 彼らは大文字に入力すること。 さて、先に行ってみようと そのプログラムを実装します。 まずはcs50.hが続い含まましょう でstdio.hに含まれます。 そして私たちは、strlenを使用することができます それではstring.hのが含まれてみましょう。 それでは次のメインとしてint型の主無効を宣言しましょう そして今度は、プロンプトに進みましょう 文字列のためのユーザー。 printfの、のは、それらを促してみましょう 一部の入力用。 今度は、文字列を宣言してみましょう - 我々は、S、それを呼ぶことにします - その中に呼び出しの結果を格納する CS50ライブラリ関数GetStringメソッド。 それでは、それぞれを反復するために進んでみよう Sの文字の、大文字化 私たちが見るあらゆる小文字。 int型のために、私は0を得る。 それではまたに等しいものとしてNを宣言しましょう Sの文字列の長さ、我々はできるように、 Nまで、私から上がって反復し、 sの長さ、および各々の上 反復増分I。 して、このループの内側に、みましょう 最初のチェックは、現在の文字です - Sのi番目の文字、いわば - 小文字。 のブラケットiは、以上である場合 小文字、それは少ないですして 以上または小文字のzに等しい - 今、私たちは、小文字に変換したい場合は、 大文字への手紙は、あることを最初に思い出す ASCIIで小文字のaは97である と大文字のAは65です。 一方、小文字のbが98であり、 大文字Bが66である。 我々はそのパターンを見続けると、 我々はその小文字が表示されます 文字は32個の値が高い常に 大文字以外。 だから我々は、小文字に変換したい場合は、 大文字に、それはすべき 減算する、本当に十分である ユーザーの入力から32。 またはより一般的には、ちょうどそれを差し引く 小文字のaとAとの間の差 資本A. それを表現するには? さて、コードの中でやってみましょう。 印刷するprintfの、引用、引用終わりは "%C" 続い現在の文字、 SブラケットIのマイナスで何でも印刷 小文字のaを実行した結果 マイナスセミコロンを大文字。 すなわち、この括弧 表情、少しマイナス大きいAは、ある 私たちに戻ろう 32日目の終わり。 しかし、私は覚えておく必要はありません それは32だということ。 私はコンピュータが把握できるようにすることができます どのような小文字の違い 資本Aがある。 一方、私はその違いがわかったら、 私はSからそれを引くことができます 何がかかりますブラケットI、 におそらく小文字 低い値、マッピングする、つまり値 対応する大文字へ。 コンパイル、今度は保存でき、 このプログラムを実行してください。 ドットスラッシュを大文字に大文字にする。 そして、私の入力は、こんにちはとなります。 そしてそこに、我々はこんにちは、持っている。 今私のプロンプトは、確かに、ある 少し醜い、我々はしましたので、 印刷の1ビットを省略。 とのに戻ってそれを追加しましょう​​。 このプログラムの一番下に、 私は非常に簡単だし、大部分のために printfのを追加しようとして審美的な目的、 引用、引用終わりバックスラッシュN。 それでは、このファイルを保存し直してみましょう、 再コンパイル、再実行します。 大文字にする、ドットスラッシュは大文字にします。 繰り返しますが、入力のために私が「こんにちは」を提供します すべて小文字で、現在はEnterキーを押し、 と "こんにちは、"はるかにきれいに印刷された。