ん?C言語を勉強中にASCIIコードっていうのが出てきたぞ。
上手くすればASCIIコードに変換するプログラムが作れるみたいなんだけど、どうすればいいんだろう🤔
こちらの悩みを解決していきますね。
結論から言うと、C言語でASCIIコード変換プログラムをつくるなら、以下の3つが必要です。
✔C言語のASCIIコード変換プログラムに必要なもの
- 変数
- scanf
- printf
とはいえ、これだけのヒントで作るのは結構難しいので、解説しますね。
この記事を書いている自分は、一日中プログラミングしていた過去がありました。現在、そこで学んだC言語について解説中です。
本記事の内容
・ASCIIコードとは?
・文字をASCIIコードに変換
・scanfを解説
・文字をASCIIコードに変換するプログラム
今回は「scanf」という関数を使って文字を入力し、printfでASCIIコードで出力するプログラムを作ることが目標です。
まずは基礎的なことから解説していきます。
既に理解している人は読み飛ばしてOK
【C言語の基礎】ASCIIコードとは?
ASCIIコードとは、コンピュータが「文字」や「数字」、「記号」などを区別するために割り振られた数字であり、コンピュータに出された命令は、このASCIIコードに変換して処理されています。
(つまり、今回作成するプログラムはコンピュータの理解という点でも重要なのですね)
例えば、43番には「+」、52番には「4」、70番には「F」といったものが割り振られています。
もちろんこれらを覚える必要はありません。ネットで調べればすぐに出てきますし、変換プログラムも簡単に作れますよ。
C言語 ASCIIコード変換プログラムの法則
文字をASCIIコードで出力するプログラム、またその逆を行うにはある法則があります。
下にまとめてみますね。
✔文字をASCIIコードで出力するプログラムの法則
- 文字を代入する変数はintで変数宣言
- 出力書式には%dを使う
✔ASCIIコードを文字で出力するプログラムの法則
- 文字を代入する変数はcharで変数宣言
- 出力書式には%cを使う
※ただし、scanfを使うと話が変わってきます。この辺の説明は後ほど…
この辺は間違えやすいポイントなので、注意!
要するに、ASCIIコードとして出力するならたとえ文字だとしてもintで変数宣言しないといけないということですね。文字の場合はその逆です。
文字をASCIIコードで出力するプログラム
ASCIIコードを文字で出力するプログラム
太字部分に注目すると分かりやすいですよ~
C言語 ASCIIコード変換プログラム
実際にサンプルコードを見せますね。
#include<stdio.h>
int main()
{
int moji;
char suuji;
moji = 'A';
suuji = 34;
printf("%d%c" ,moji, suuji);
}
「moji」というintで宣言された変数には「A」、「suuji」というcharで宣言された変数には「34」を代入します。
「moji」を「%d」で、「suuji」を「%c」で出力します。
出力結果には「65″」が出力されました。
つまり、「A」はASCIIコードだと65番、ASCIIコードの34番は「”」という記号だったということが分かりますね。
「scanf」の使い方
ここで、scanfの話に移ります。
scanfとは?
scanfはそもそも何かというと、「プログラムの実行結果の画面で、変数に代入できる関数」です。
そのため、今までやっていた変数宣言をする必要がなくなります。
scanfを使うときのフォーマットは、
scanf(“変換書式”,変数);
です。変換書式が分からない人は、過去の記事を見て復習してください。
scanfで文字を代入するだけのプログラム
それでは実際に、scanfで文字を代入するだけのプログラムを書いてみましょう。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
char moji;
int suuji;
printf("moji=");
scanf("%c", &moji);
printf("suuji=");
scanf("%d", &suuji);
}
で、このコードを見て結構びっくりした人がいるかもしれません。特に
#define _CRT_SECURE_NO_WARNINGS
とか。この変な文字列は、「scanf」を使うときに必要なおまじないだと思ってもらって大丈夫です。
今までやってきた「#include<stdio.h>」と同じ感じですね。
もっと詳しくscanfを知りたい方は、下の記事を参考にしてください。
»C言語 入門 「scanf」の使い方!(エラー出た時の対処法も)
scanfを使うと、出力結果の時に入力できるようになります。プログラム実行後に代入ができるという解釈もOK。
「scanf」で文字を代入をするプログラムは
scanf(”%c”,&変数);
のように書きます。
出力画面はこんな感じで出てきます。(mojiの部分はprintfで出力してます。)
このまま文字の入力が可能です。
「A」と入力しました。Enterキーを押した後、数字の入力が可能になります。
「10」を入力してこんな感じで終了しました。
でも、なんかこれじゃつまらないですよね?変数宣言をしても計算して、結果を出力しないと意味がないです。
ということで、入力された文字をASCIIコードに変換するプログラムを作っていきましょう。
【scanf使用】C言語 ASCIIコード変換プログラムの法則
先ほど文字をASCIIコードで出力するプログラム、またその逆を行うにはある法則そ紹介しました。
ですが、scanfを使ってプログラムを書くと話が変わってきます
下にまとめてみますね。
✔scanfで文字を入力し、ASCIIコードとして出力するプログラムの法則
- 文字を代入する変数はcharで変数宣言
- 入力書式には%cを使う
- 出力書式には%dを使う
✔scanfでASCIIコードを入力し、文字として出力するプログラムの法則
- 文字を代入する変数はintで変数宣言
- 入力書式には%dを使う
- 出力書式には%cを使う
この辺は暗記必須ではないですが、いつでも調べられるようにしましょう。このページをブックマークしたり、画面をスクショするのがオススメですよ。
【scanf使用】C言語のASCIIコード変換プログラム
今回は上のパターンで進めていきます。
先ほどの説明通りでこんな感じになりますね。
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
int main()
{
//ここで変数宣言
char moji;
//まずは「moji=」を画面上に表示
printf("moji=");
//「scanf」で読み取り
scanf("%c", &moji);
//「ASCIIコード」で出力
printf("%d", moji);
}
「M」という文字を入力してみました。いろんな文字を入力しても使えると思います。ぜひ自分でも作ってみてください!
まとめ:C言語とASCIIコードの関係
結論として、ASCIIコード変換プログラムに必要なものは以下の3つですね。
✔C言語のASCIIコード変換プログラムに必要なもの
- 変数
- scanf
- printf
ASCIIコードを調べるための表などがありますが、今回のプログラムを作れればそんな表は必要ないですよ。
話が長くてちょいムズでしたが、とても重要です。いつでもこのプログラムが作れるくらいまで理解しましょう。
今回は、以上です!
今回の話があまり理解できなかった人は、基礎を抑えましょう。
下の2つがオススメです。
次は、「複合代入演算子」というものを勉強していきましょう。
ではでは~👋
コメント