C言語ですべてのASCII値を出力するプログラムの作成方法
問題
文字型変数を整数型に初期化することなく、0から255までの各文字に対応するASCII(American Standard Code for Information Interchange)値を出力するプログラムを作成します。ポイントは、書式指定子を活用することだけです。
解決方法
ここでは、まず65から122までのASCII値(アルファベットA〜zの範囲)のみを出力するプログラムを作成します。
もし0から255までのすべてのASCII値を確認したい場合は、forループの条件を次のように変更するだけです。
for(i = 0; i < 255; i++)
このように記述すれば、0から255までのすべてのASCII値が出力されます。
65から122までのASCII値を出力するためのロジックは以下の通りです。
/* A から z までのASCII値を出力 */
for (i = 65; i <= 122; i++) {
printf("%c %d\n", i, i);
}
ポイント解説
このプログラムの核心は、printf関数における2つの書式指定子の使い分けにあります。%cは引数を文字として出力し、%dは10進整数として出力します。同じ変数iに対して両方の書式指定子を適用することで、「文字」と「それに対応するASCIIコード」を1行で同時に表示できるのです。
サンプルコード
以下は、65から122までのASCII値を出力する完全なCプログラムです。
#include <stdio.h>
int main() {
// 変数の宣言
int i = 0;
printf("Character \t ASCII Value\n\n");
// ASCII値の出力
for (i = 65; i <= 122; i++) {
printf("%c \t\t %d\n", i, i);
}
return 0;
}
実行結果
上記のプログラムをコンパイルして実行すると、次のような出力が得られます。
Character ASCII Value A 65 B 66 C 67 D 68 E 69 F 70 G 71 H 72 I 73 J 74 K 75 L 76 M 77 N 78 O 79 P 80 Q 81 R 82 S 83 T 84 U 85 V 86 W 87 X 88 Y 89 Z 90 [ 91 \ 92 ] 93 ^ 94 _ 95 ` 96 a 97 b 98 c 99 d 100 e 101 f 102 g 103 h 104 i 105 j 106 k 107 l 108 m 109 n 110 o 111 p 112 q 113 r 114 s 115 t 116 u 117 v 118 w 119 x 120 y 121 z 122
出力を見ると、大文字の「A」が65、「Z」が90、小文字の「a」が97、「z」が122であることがわかります。大文字と小文字の間には、[、\、]などの記号が含まれている点にも注目してください。これは、ASCIIコードでは大文字と小文字のコード値が連続していないことを示しています。
-
指定した範囲内のすべての素数を出力するPythonプログラム
この記事では、以下の問題文に対する解決方法について学んでいきます。 問題文 ある区間が与えられたとき、その範囲内に含まれるすべての素数を求めて出力する必要があります。 ここでは、素数の基本的な定義に基づいた全探索(ブルートフォース)によるアプローチを紹介します。素数とは、「1とその数自身のみを約数として持ち、それ以外の数を約数に持たない自然数」のことです。 この定義に基づき、各数値が素数の条件を満たしているかどうかを判定し、条件が真(True)と評価されるたびに出力処理を行います。 それでは、実際の実装例を見ていきましょう。 実装例 start = 1 end = 37 for val in
-
指定された文字列のすべての順列を出力するPythonプログラム
本記事では、以下の問題に対する解決策について詳しく学んでいきます。 問題文 1つの文字列が与えられたとき、その文字列から作成できるすべての順列(並べ替えの組み合わせ)を表示する必要があります。 それでは、以下の実装例で具体的な解決策を見ていきましょう。 実装例 # リストを文字列に変換 def toString(List): return .join(List) # 順列の生成 def permute(a, l, r): if l == r: print(toString(a)) else: for i in range(l, r +