この記事では、C++ で int を char に変換する方法を学びます。この変換には次の 5 つの方法があります。
タイプキャストを使用します。 static_cast を使用します。 sprintf() を使用します。 to_string() と c_str() を使用します。 ストリングストリームを使用します。
これらの各方法について詳しく説明することから始めましょう。
例:
入力: N = 65
出力: あ
入力: N = 97
出力: ある
1. タイプキャストの使用
方法 1:
宣言と初期化: まず、変換する値を使用して整数を宣言し、初期化します。型キャスト: あるデータ型を別のデータ型に変換する手法です。整数 N を型キャストし、その値をデータ型 char 変数 c に保存しています。文字を印刷する: 最後に、cout を使用して文字を印刷します。
以下は、型キャストを使用して int を char に変換する C++ プログラムです。
C++
// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 97;> > cout < <> char> (N);> > return> 0;> }> |
出力
a
時間計算量は O(1)、補助空間は O(1) です。
方法 2:
宣言と初期化: まず、変換する値を使用して整数を宣言し、初期化します。型キャスト: 別の変数を文字 c として宣言し、N の値を C に割り当てます。 文字を出力します。 最後に、cout を使用して文字を出力します。
以下は、型キャストを使用して int を char に変換する C++ プログラムです。
C++
// C++ program to convert> // int to char using typecasting> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > char> c = N;> > cout < < c;> > return> 0;> }> |
出力
A
2. static_cast の使用
static_cast 関数を使用して、整数を文字に変換できます。以下は、static_cast を使用して int を char に変換する C++ プログラムです。
C++
// C++ program to convert> // int to char using static_cast> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 65;> > > char> c => static_cast> <> char> >(N);>> 出力 A 3. sprintf() の使用 char バッファーに変換される単一の int 変数用のスペースを割り当てます。次の例では、整数データの最大長 Max_Digits を定義していることに注意してください。 sprintf 関数は 0 バイトで終わる char 文字列を宛先に送信するため、sizeof(char) を追加して char バッファ長を取得します。そのため、このバッファー用に十分なスペースを確保する必要があります。 以下は、sprintf() を使用して int を char に変換する C++ プログラムです。 C++ // C++ program to convert> // int to char using sprintf()> #include> using> namespace> std;> #define Max_Digits 10> // Driver code> int> main()> {> > int> N = 1234;> > char> n_char[Max_Digits +> > sizeof> (> char> )];> > std::> sprintf> (n_char,> > '%d'> , N);> > std::> printf> (> 'n_char: %s
'> ,> > n_char);> > return> 0;> }> | 出力 n_char: 1234 4. to_string() と c_str() の使用 to string() 関数は、単一の整変数またはその他のデータ型を文字列に変換します。 c_str() メソッドは、文字列を NULL 文字で終わる文字の配列に変換します。 以下は、to_string() と c_str() を使用して int を char に変換する C++ プログラムです。 C++ // C++ program to convert> // int to char using sto_string()> // and c_str()> #include> using> namespace> std;> // Driver code> int> main()> {> > int> N = 1234;> > string t = to_string(N);> > char> const> *n_char = t.c_str();> > printf> (> 'n_char: %s
'> ,> > n_char);> > return> 0;> }> | 出力 n_char: 1234 5. 文字列ストリームの使用 stringstream は文字列オブジェクトをストリームに接続し、ストリーム (cin など) であるかのように読み取ることができます。 Stringstream には、sstream ヘッダー ファイルを含める必要があります。 stringstream クラスは、入力を処理するときに便利です。 以下は、stringstream を使用して int を char に変換する C++ プログラムです。 C++ // C++ program to convert> // int to char using> // stringstream> #include> using> namespace> std;> #include> // Driver code> int> main()> {> > int> N = 1234;> > std::stringstream t;> > t < < N;> > char> const> *n_char => > t.str().c_str();> > printf> (> 'n_char: %s
'> ,> > n_char);;> > return> 0;> }> | 出力 n_char: 1234 方法: int 値に 0 を加算して char に変換する C++ // C++ program to convert> // int to char using typecasting by adding zero> #include> using> namespace> std;> //Driver code> int> main()> {> > int> number = 65;> > char> charvalue = (> char> (number)+0);> > cout < < charvalue;> > return> 0;> }> | 出力 A 時間計算量: ○(1)。 補助スペース: ○(1)。 アプローチ: ASCII 値オフセットのアプローチ 手順: - ユーザーから整数入力を受け取ります。
- 入力値の範囲をチェックして、入力値が ASCII テーブル内の有効な文字に対応しているかどうかを確認します。
- 入力値が有効な文字に対応する場合は、対応するオフセット値「0」または「A」(入力に応じて)を整数値に加算して、対応する文字値を取得します。
- 対応する文字を出力します。
C++ #include> using> namespace> std;> int> main() {> > int> num = 65;> > cout < <> 'Enter an integer: '> < < num < < endl;> > > char> ch;> > if> (num>= 65 && 番号 <= 90) {> > ch = num;> > }> else> if> (num>= 97 && 番号 <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > > cout < <> 'The corresponding character is: '> < < ch < < endl;> > num = 97;> > cout < <> 'Enter an integer: '> < < num < < endl;> > if> (num>= 65 && 番号 <= 90) {> > ch = num;> > }> else> if> (num>= 97 && 番号 <= 122) {> > ch = num;> > }> else> {> > cout < <> 'Invalid input.'> < < endl;> > return> 0;> > }> > cout < <> 'The corresponding character is: '> < < ch < < endl;> > return> 0;> }> | 出力 Enter an integer: 65 The corresponding character is: A Enter an integer: 97 The corresponding character is: a 時間計算量: ループが含まれていないため、O(1)。 補助スペース: O(1)。結果を保存するために 1 つの文字変数のみを使用しているためです。 アプローチ名: 算術変換 手順: - 入力された int 値の桁数を計算します。
- 数字を右から左に繰り返し、各数字を抽出し、ASCII 値「0」を追加して文字に変換します。
- 結果の char 配列を、提供された出力バッファに保存します。
C++ #include> #include> using> namespace> std;> void> int_to_char(> int> num,> char> *result) {> > int> temp = num;> > int> len = 0;> > while> (temp>0) {>> > len++;> > temp /= 10;> > }> > for> (> int> i = len - 1; i>= 0;私--) {>> > result[i] = num % 10 +> '0'> ;> > num /= 10;> > }> > result[len] => ' '> ;> }> int> main() {> > int> num = 12345;> > char> result[100];> > int_to_char(num, result);> > cout < < result < < endl;> > return> 0;> }> | 出力 12345 時間計算量 : O(log10 n)、n は入力 int 値です。 空間の複雑さ: O(log10 n)。出力 char 配列を保存する必要があるため、n は入力 int 値です。
|