logo

int から char への変換のための C++ プログラム

この記事では、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++




Pythonのソートされたタプル



// 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);>> cout << c;> >return> 0;> }>

>

>

出力

A>

3. sprintf() の使用

char バッファーに変換される単一の int 変数用のスペースを割り当てます。次の例では、整数データの最大長 Max_Digits を定義していることに注意してください。 sprintf 関数は 0 バイトで終わる char 文字列を宛先に送信するため、sizeof(char) を追加して char バッファ長を取得します。そのため、このバッファー用に十分なスペースを確保する必要があります。

Javaを配列にリストする

以下は、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++

キーボードのf5って何ですか?




// 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 値オフセットのアプローチ

手順:

  1. ユーザーから整数入力を受け取ります。
  2. 入力値の範囲をチェックして、入力値が ASCII テーブル内の有効な文字に対応しているかどうかを確認します。
  3. 入力値が有効な文字に対応する場合は、対応するオフセット値「0」または「A」(入力に応じて)を整数値に加算して、対応する文字値を取得します。
  4. 対応する文字を出力します。

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 つの文字変数のみを使用しているためです。

アプローチ名: 算術変換

手順:

  1. 入力された int 値の桁数を計算します。
  2. 数字を右から左に繰り返し、各数字を抽出し、ASCII 値「0」を追加して文字に変換します。
  3. 結果の 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;> }>

>

>

出力

10億は何百万ですか
12345>

時間計算量 : O(log10 n)、n は入力 int 値です。
空間の複雑さ: O(log10 n)。出力 char 配列を保存する必要があるため、n は入力 int 値です。