>> 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キーを押し、
と "こんにちは、"はるかにきれいに印刷された。