c character conversion functions
このチュートリアルでは、コード例を使用して、文字から整数への変換や文字列と文字配列から文字列への変換などのC ++文字変換関数について説明します。
C ++では、多くのタイプを含むアプリケーションを開発するにつれて、あるタイプから別のタイプに変換する必要があります。以前のチュートリアルで、いくつかの基本的な型変換をすでに見てきました。
文字列変換と数値型から文字列への変換も確認しました。すでに見てきた文字列変換関数とは別に、文字を他のデータ型に変換するために使用される関数がいくつかあります。
これらは、単一の文字または文字配列を受け取り、それらを他のデータ型に変換する関数です。
=> Easy C ++トレーニングシリーズをお読みください。
学習内容:
C ++文字変換関数
整数または文字列への単一文字変換および文字配列から文字列への変換に関しては、変換関数は文字列変換関数の変換関数からわずかに変更されます。
アバストクリーンアッププレミアムの無料の代替品
このチュートリアルでは、次の変換について説明します。
- 文字から整数への変換(charからint C ++)
- 文字から文字列への変換(文字から文字列へのC ++)
- 文字配列から文字列への変換
最初の2つの変換は単一の文字を処理し、最後の変換は文字配列を含みます。
文字を整数に変換–charをintに変換
単一の文字を整数型に変換するには、以下に示す2つの方法があります。
#1)キャストによる
キャスト操作を使用して、単一の文字を同等の整数に変換できます。この場合、文字に相当するASCIIが表示されます。
次の変換を検討してください。
char a = 'A'; int num = (int) a;
この場合、「num」の値は65になります。これは、文字「A」とASCIIで同等です。
または、数字を整数値に変換する場合は、次の操作を使用できます。
char a = '2'; int num = a-48;
ここで、48はASCII値0です。ここで行われるのは、2行目a-48がchar aをASCIIに相当するものに暗黙的に変換し、48(50-48)から減算して整数値2になることです。
#2)stringstreamを使用する
文字列変換関数のチュートリアルですでに見たように、stringstreamオブジェクトとして表される単一の文字を整数または任意の数値に変換できます。
以下に、これを示すコードを示します。
#include #include #include using namespace std; int main() { stringstream str; str <> x; cout<<'Converted value of character 5 :'< 出力:
文字5:5の変換値
文字を文字列に変換–文字を文字列に変換
1文字を文字列に変換する方法はいくつかあります。
これらの方法のいくつかについて説明しましょう。
#1)文字列クラスによって提供されるコンストラクタを使用する。
関数プロトタイプ: 文字列s(int n、char x);
パラメーター):
n =>生成される文字列のサイズ。
x =>文字列に変換される文字。
戻り値:s 文字の変換によって得られるトリング。
説明: 文字列クラスのコンストラクタは、文字列の長さ(n)と1文字をパラメータとして受け取り、その文字を文字列に変換します。
以下に示すのは、単一の文字から文字列への変換を示す簡単な例です。
#include #include using namespace std; int main() { string str(1,'A'); cout<<'The string obtained by converting single character : '< 出力:
1文字を変換して得られる文字列:A
上記の変換は単純なものです。文字列コンストラクターを呼び出し、文字列の長さ(最初のパラメーター)を1として指定します。これは、単一の文字を変換し、2番目のパラメーターが文字列に変換される文字(この場合は「A」)であるためです。
#2)std :: string演算子の使用=および+ =
std :: stringクラス演算子、=および+ =は文字に対してオーバーロードされます。したがって、これらの演算子を使用して、単一の文字を文字列に変換できます。
これは、以下に示すプログラムで示されます。
#include #include using namespace std; int main() { string str; char c = 'B'; str = 'C'; str += c; cout<<'The string obtained by converting single character : '< 出力:
1文字を変換して得られる文字列:CB
このプログラムでは、オーバーロードされた演算子=と+ =の両方を使用しました。文字列オブジェクトを宣言し、=演算子を使用してそれに文字を割り当てました。次に、+ =演算子を使用して、文字列オブジェクトに別の文字を割り当てます。
2回目に、文字が文字列オブジェクトの既存のコンテンツに実際に連結されることがわかります。
#3)std :: stringのさまざまな方法を使用する
std :: stringクラスは、文字を文字列に渡すことができるさまざまなオーバーロードされたメソッドをサポートし、最終的に文字を文字列に変換します。
std :: stringクラスのメソッドのいくつかは次のとおりです。
- push_back
関数プロトタイプ: void push_back(char c)
パラメーター): c =>文字列に割り当てられる文字
戻り値: voidを返します
説明: この関数は文字に対してオーバーロードされ、文字列の末尾に文字を割り当てます。
- 追加
関数プロトタイプ: 文字列と追加(size_t n、char c)
パラメーター):
n =>文字が追加される回数。
c =>文字列に追加される文字。
戻り値: 文字の変換によって取得された文字列。
説明: std :: stringの追加関数は2つの引数を取ります。最初の引数は、文字が文字列にコピーされる回数です。 2番目の引数は、コピーされる実際の文字です。したがって、append関数は、最初の引数で指定された文字のコピーを文字列に割り当てます。
- 割当
関数プロトタイプ: string&assign(size_t n、char c);
パラメーター):
n =>キャラクターのコピー数。
c =>文字列にコピーされる文字。
戻り値: 文字の変換によって取得された文字列。
説明: 代入関数は、現在の文字列の内容を文字のn個(最初の引数)のコピー(2番目の引数)に置き換えます。
- インサート
関数プロトタイプ: 文字列と挿入(size_t pos、size_t n、char c);
パラメーター):
pos =>文字が挿入される先頭の位置。
n =>キャラクターのコピー数。
c =>文字列に挿入される文字。
戻り値: 文字の変換によって取得された文字列。
説明: この関数は、pos(最初の引数)で指定された文字列の開始位置に文字(3番目の引数)のn(2番目の引数)のコピーを挿入します。
次に、std :: stringクラスの上記のすべての機能を示すプログラムを開発します。
#include #include using namespace std; int main() { string str; str.push_back('A'); cout<<'push_back single character : '< 出力:
push_back単一文字:A
1文字追加:C
単一の文字を割り当てる:D
1文字挿入:BD
上記のプログラムは、push_back、append、assign、およびinsert関数を示しています。出力には、各関数によって返された結果または文字列が表示されます。
#4) std :: stringstreamの使用
stringstreamを使用した数値型から文字列への変換についてはすでに説明しました。文字列から文字列への変換も、stringstreamクラスが使用される場合と同じ原則に従います。
指定された文字がストリームに挿入され、内容が文字列に書き込まれます。
C ++プログラムを使用してこれを明確にしましょう。
#include #include #include using namespace std; int main() { string str; stringstream mystr; mystr<>str; cout<<'The string obtained by converting single character : '< 出力:
1文字を変換して取得した文字列:A
最初に文字をストリームオブジェクトに挿入し、次にそのバッファを文字列オブジェクトに書き込みます。したがって、プログラムの出力には、単一文字である文字列オブジェクトの内容が表示されます。
文字配列を文字列に変換する
std :: stringクラスには、文字配列を処理するときに便利な多くのメソッドがあります。したがって、効率的なプログラムを作成できるように、文字配列を文字列オブジェクトに変換してから使用することをお勧めします。
以下に示すように、文字配列を文字列に変換する方法は2つあります。
#1)文字列コンストラクターの使用
単一の文字を文字列に変換するためにすでに説明したように、文字列コンストラクターを使用して文字配列を文字列に変換できます。
関数プロトタイプ: 文字列(const char * s);
パラメーター: s =>文字列に変換されるnullで終了する文字配列
戻り値: string =>変換された文字列
説明: std :: stringクラスのこのオーバーロードされたコンストラクターは、引数として文字配列またはC文字列を受け取り、文字列を返します。
次のプログラムは、この変換を示しています。
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr(myarray); cout<<'Converted string: '< 出力:
変換された文字列:ソフトウェアテストヘルプ
上記のプログラムは非常に簡単です。必要なのは、std :: stringコンストラクターを1回呼び出すだけで、指定された文字配列を文字列に変換できます。
#2)使用=オーバーロードされた演算子
文字配列を文字列オブジェクトに変換する別のアプローチは、オーバーロードされた演算子=を使用することです。これでは、=演算子を使用して文字配列を文字列オブジェクトに直接割り当てることができ、内容は文字列に渡されます。
次の例はこれを示しています。
#include #include using namespace std; int main() { char myarray() = {'Software Testing Help'}; string mystr; mystr = myarray; cout<<'Converted string: '< 出力:
変換された文字列:ソフトウェアテストヘルプ
上記のプログラムは、=演算子を使用して配列を文字列オブジェクトに直接割り当てます。これにより、文字配列の内容が文字列オブジェクトにコピーされます。
結論
単一の文字と文字配列を文字列オブジェクトに変換するさまざまな方法を見てきました。 std :: stringクラスには、文字列を効率的に操作できる多くの関数があるため、最初に文字列に変換して文字データを操作すると常に役立ちます。
さらに読む= >> JavaでCharをIntに変換する
さらに読む= >> Javaで文字を文字列に変換する
クラスメソッドを使用して、文字データを文字列に変換することもできます。ここでは、最初にデータをストリームに挿入してから、このバッファーを文字列オブジェクトに書き込みます。
以降のチュートリアルでは、C ++でのstringstreamクラスとその他のライブラリ関数について詳しく説明します。
=> C ++トレーニングチュートリアルのA〜Zを確認するには、ここをクリックしてください。
推奨読書