もっと詳しく
一連の文字列をクラスメンバーとして識別する方法は、C++の定義で指定されています。 Stringクラスは、属性をビットストリームとして保持し、1バイト文字を処理する機能を備えています。 C ++では、文字列を取得できますが、それでも文字列がどのように保持および転送されるかを調べる必要があります。 C ++は、限られたスペースを持つヒープ上の要素を返すため、膨大なコンポーネントを提供すると、スタックオーバーフローの問題が発生し、エラーやセキュリティ上の欠陥が発生する可能性があります。

標準テンプレートライブラリからstd::stringオブジェクトを返すことができる場合は、文字列への定数ポインタを提供できます。 文字列が静的メモリに保持されていることを確認します。 この記事では、C++関数から文字列を返すためのさまざまなアプローチの概要を説明します。

std :: string function()テクニックを利用する

関数から文字列データを取得する場合は、値による戻りが推奨される手法です。 std :: stringクラスのmoveコンストラクターにより、データによって比較的大きな文字列を返すことは効率的です。 要素にmoveコンストラクターが含まれている場合、要素はセマンティックコンテンツを再配置したと言われています。 移動セマンティクスは、関数が戻ったときにデータが新しい位置に複製されないことを示唆しており、関数の完了時間を効率的にします。

#include
#include
#include<イテレータ>
を使用して std:::カウト; を使用して std:::endl;
を使用して std:::ストリング; を使用して std:::逆行;

文字列RevString((ストリング s)。{{

文字列rev((s。rbegin(()。、s。レンド(()。)。;

戻る rev;
}
int 主要(()。 {{

文字列str = 「バドミントンをするのが大好き」;

カウト << str << endl;
カウト << RevString((str)。 << endl;
戻る EXIT_SUCCESS;
}

プログラムの開始時に、3つのヘッダーファイルをインクルードする必要があります。 入出力関数用のは、要素のグループで使用することを目的とした一連の関数を指定します。 イテレータまたは参照を使用して取得できるアイテムのシーケンスは、範囲と見なされます。 <イテレータ>は、その名前が示すように、一連の数値を操作するために使用されています。 出力を取得するための標準の「cout」関数、プログラムが次の行から進行することを示す標準の「endl」、文字列の機能を保持する標準の「string」、および取得に使用される標準の「reverse」を呼び出します。逆の順序で文字列。

これで、「RevString()」関数が呼び出されます。 ここでは、定義された文字列をこの関数のパラメーターとして渡します。 rbegin()およびrend()関数を適用します。 rbegin()は、リストの最後のコンポーネントを参照する逆イテレータを提供するC++組み込み関数です。 rend()は、リストの開始前のポイントにつながる逆イテレータを返すために使用される組み込みのC++関数です。 ‘return rev’ステートメントを入力して、文字列の逆を取得します。

‘endl’を適用します。これは、カーソルがコードの次の行に移動することを示します。 指定された文字列の逆順を出力するために、「RevString」を使用しました。 この関数には、入力された文字列が引数として含まれています。 最後に、「EXIT_SUCCESS」を適用してプログラムを終了します。

std :: string&function()テクニックを利用する

この方法論では、フォーマットを参照することで返品を使用できます。これは、この状況を解決するための別の方法です。 錯覚によるリターンは、大規模な構造またはクラスを取得するための最も効果的な方法ですが、これは、以前の戦略と比較して、このシナリオでは追加のパラメーターを必要としません。 関数で定義されたグローバル変数を置き換えるために参照を使用しないことを覚えておくことが重要です。 これにより、参照が長引くことになります。

#include
#include
#include<イテレータ>

を使用して std:::カウト; を使用して std:::endl;
を使用して std:::ストリング; を使用して std:::逆行;

ストリング RevStr((ストリング s)。 {{
逆行((s。始める(()。、s。終わり(()。)。;
戻る s;
}

int 主要(()。 {{
文字列str = “情報技術”;

カウト << str << endl;
カウト << RevStr((str)。 << endl;

戻る EXIT_SUCCESS;
}

まず、特定の機能のために3つのライブラリ>、、およびを統合します。 標準の「cout」関数を使用して出力を取得し、標準の「endl」を使用してプログラムが次の行に続くことを示し、標準の「string」を使用して文字列の関数を保持し、標準の「reverse」を使用して文字列を逆の順序で取得します。 文字列のポインタ’RevStr()’が現在使用されています。 指定された文字列は、このメソッドのパラメーターとして提供されます。 関数begin()とend()を呼び出します。

‘return s’ステートメントを使用して、文字列の逆を取得します。 これで、main()関数が呼び出されます。 ここで、プログラムのロジックが宣言されます。 文字列「InformationTechnology」を宣言します。 この文字列は「str」変数に保存されます。 ‘cout’ステートメントは、文字列の出力を取得するために使用されます。 また、「endl」を使用します。これは、カーソルが新しいコード行に移動することを示します。 ‘RevString’は、必要な文字列を逆の順序で表示するために使用されています。

指定された文字列は、パラメータとしてこのメ​​ソッドに渡されます。 最後に、プログラムはコマンド「EXITSUCCESS」で終了しました。

Char配列メソッドを利用する

同様に、文字配列を使用して関数から文字列を取得できます。 文字列クラスは、文字を保持するために永続配列を採用しています。 組み込みメソッドを呼び出すことにより、その配列の最初の文字メンバーへの参照を取得できます。

#include
#include<文字列>
を使用して 名前空間 std;

int 主要(()。
{{

文字列str1 = 「バドミントンをするのが大好き」;

文字列str2 = “情報技術”;

char ch[50];

str1。コピー((ch、 130)。;

カウト << 「新しくコピーされた文字配列は:」;
カウト << ch << endl;

カウト << 「最初の文字列を交換する前は:」;
カウト << str1 << endl;
カウト << 「2番目の文字列を交換する前は:」;
カウト << str2 << endl;

str1。スワップ((str2)。;

カウト << 「最初の文字列を交換した後は:」;
カウト << str1 << endl;
カウト << 「2番目の文字列を交換した後は:」;
カウト << str2 << endl;

戻る 0;
}

ここでは、文字列クラスを使用するためのヘッダーファイルを紹介します。 これに伴い、標準の名前空間を使用しています。 main()関数を使用して、この関数の本体でコーディングを開始します。 2つの文字列を初期化します。 最初の文字列は変数「str1」に格納され、2番目の文字列は変数「str2」に格納されます。 これで、文字配列が宣言されました。

文字配列のサイズを指定します。 copy()関数が呼び出されます。 パラメータで指定された対象のchar配列の部分文字列は、このメソッドによってコピーされます。 3つの引数は、対象の文字配列、複製される長さ、および複製を開始するための文字列の開始点です。 ‘cout’ステートメントを使用してこの文字配列を表示します。

‘cout’ステートメントを使用してスワップする前に、両方の文字列が表示されています。 ある文字列コンテンツを別の文字列コンテンツと交換するswap()関数を適用します。 交換後、再度「cout」と入力して、交換された文字列を取得します。 ‘return 0’を適用して、コードを終了します。

結論

標準C++ライブラリの文字列クラスには、上記のすべてのメソッドが含まれています。 この記事では、C++の関数から文字列を返すためのさまざまな方法論を見てきました。 std :: string&function()手法やstd :: string function()手法など、さまざまなインスタンスを使用して方法論を説明しています。

The post 関数C++から文字列を返す appeared first on Gamingsym Japan.