C言語 入門 ASCIIコード変換プログラムを0から解説

スポンサーリンク
C言語
C言語でASCIIコード変換プログラムを作りたい人

ん?C言語を勉強中にASCIIコードっていうのが出てきたぞ。

上手くすればASCIIコードに変換するプログラムが作れるみたいなんだけど、どうすればいいんだろう🤔

こちらの悩みを解決していきますね。

結論から言うと、C言語でASCIIコード変換プログラムをつくるなら、以下の3つが必要です。

✔C言語のASCIIコード変換プログラムに必要なもの

  1. 変数
  2. scanf
  3. 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コード変換プログラムに必要なもの

  1. 変数
  2. scanf
  3. printf

ASCIIコードを調べるための表などがありますが、今回のプログラムを作れればそんな表は必要ないですよ。

話が長くてちょいムズでしたが、とても重要です。いつでもこのプログラムが作れるくらいまで理解しましょう。

今回は、以上です!

今回の話があまり理解できなかった人は、基礎を抑えましょう。

下の2つがオススメです。

次は、「複合代入演算子」というものを勉強していきましょう。

ではでは~👋

Exit mobile version