C/C++でint型をASCII文字に変換する方法
C言語やC++では、文字は内部的にASCIIコードとして格納されています。そのため、int型の数値をASCII値に変換したい場合は、文字「'0'」のASCII値(10進数で48)を整数に加算するだけで簡単に実現できます。
この仕組みを利用すると、0〜9までの1桁の数字を対応するASCIIコードへ変換できます。以下に、int型の数値をASCII値へ変換するサンプルプログラムを示します。
サンプルコード
#include<stdio.h>
int intToAscii(int number) {
return '0' + number;
}
main() {
printf("The ASCII of 5 is %d\n", intToAscii(5));
printf("The ASCII of 8 is %d\n", intToAscii(8));
}実行結果
The ASCII of 5 is 53 The ASCII of 8 is 56
解説
このプログラムでは、関数 intToAscii() の中で文字リテラル '0' と引数の整数を加算しています。C/C++では文字リテラルはそのままASCIIコードとして扱われるため、'0' は数値の48と等価です。
したがって、intToAscii(5) は 48 + 5 = 53 を返し、これはASCIIコードにおける文字「5」に相当します。同様に、intToAscii(8) は 48 + 8 = 56 となり、文字「8」のASCIIコードです。
なお、変換結果を実際の文字として表示したい場合は、printf の書式指定子を %d ではなく %c に変更してください。そうすることで、数値ではなく対応するASCII文字が出力されます。
-
C/C++の三項演算子(条件演算子)の基本と使い方
3つのオペランド(被演算子)を必要とする演算子は「三項演算子」と呼ばれます。C言語では ? : の記号で表され、「条件演算子」とも呼ばれています。三項演算子を使うと、コードの行数を削減でき、簡潔で読みやすいプログラムを書くことができます。三項演算子の構文式1 ? 式2 : 式3まず式1が評価され、その結果が真(非ゼロ)であれば式2が実行され、偽(ゼロ)であれば式3が実行されます。if-else文を1行で書けるため、簡単な条件分岐に便利です。C言語での三項演算子の例サンプルコード1#include <stdio.h> int main() { int a = -1;
-
C++でint型をstring型に変換する方法を解説
整数(int)を文字列(string)に変換したい場合、いくつかの方法があります。まずはC言語由来のitoa関数を使う方法から見ていきましょう。 itoa関数を使う方法 itoaは「integer to ASCII」の略で、整数値を文字列に変換するC言語の関数です。以下のように使用します。 例 #include<iostream> int main() { int a = 10; char *intStr = itoa(a); string str = string(intStr); cout << str; } 出力 このコードを実行す