string functions c
このチュートリアルでは、getline substring、string length、string find、split stringなど、C ++で人気のある文字列関数のいくつかについて説明します。
C ++には、文字列とも呼ばれる一連の文字に使用される文字列クラスがあります。このクラスは std ::文字列 。このクラスは、文字列を文字バイトのシーケンスとして格納し、文字列の操作、アクセス、読み取り、および単一文字へのアクセスと操作を可能にする関数を提供します。
ウォークラフトプライベートサーバーの新しい世界
=> 専門家による完全なC ++コースについては、こちらをご覧ください。
学習内容:
C ++文字列関数
C ++文字列は文字のシーケンスです。 C ++で文字列を定義するときは、文字列を使用します
std :: stringクラスに他ならないキーワード。この文字列クラスは、文字列の読み取り、操作、文字列へのアクセスなど、文字列オブジェクトに対してさまざまな操作を実行するさまざまな関数をサポートします。よく使う機能を以下に示します-
番号 | 文字列関数 | 説明 |
---|---|---|
1 | getline | ストリームから文字列への行を取得します |
二 | substr | 指定された文字列の部分文字列を取得します |
4 | 長さ、strlen | 文字列の長さを取得します |
5 | 検索 | 文字列内のコンテンツを検索 |
6 | Strtok、区切り文字付きのsubstr | 文字列をトークンに分割 |
getline C ++
関数プロトタイプ: istream&getline(istream&is、string&str)
パラメーター): is =>文字が抽出されるistreamオブジェクト。
str =>抽出された文字を格納するために使用される文字列オブジェクト。
戻り値: 戻り値はistreamと同じです。内部的には、getlineの実行により、特定の内部フラグが次のように設定されます。
国旗 | エラーの説明 |
---|---|
eofbit | キャラクターソースの終わりに達しました |
フェイルビット | 入力は、このタイプのオブジェクトの有効なテキスト表現として解釈できません |
badbit | 上記の2つ以外のエラー |
説明: getlineは標準ライブラリ関数です。この関数は、istreamなどの標準入力ストリームから行または文字列を読み取るために使用されます。行または文字列は、区切り文字と見なされる「 n」が検出されるまで読み取られます。
getlineの別のバージョンとして、3番目のパラメーター「chardelim」を指定できます。これは、明示的に指定された区切り文字です。この関数では、指定された区切り文字が見つかるまで、テキストまたは文字列の行が読み取られます。
以下に示すのは、getlineの使用法を示す簡単な例です。
例:
#include #include using namespace std; int main() { string mystr; cout<<'Enter the input string:'< 出力:
入力文字列を入力します。
C ++チュートリアル
入力したもの:C ++チュートリアル

上記の例では、getline関数を使用して入力文字列を読み取ります。入力された文字列またはテキストは、「 n」が検出されるまで文字列オブジェクトmystrに読み込まれることに注意してください。
C ++ Substr
関数プロトタイプ: string substr(size_t startpos、size_t endpos)
パラメーター): startpos =>部分文字列が抽出される開始位置。
endpos =>部分文字列の終了位置。
戻り値: 親文字列の部分文字列である文字列を返します。
説明: この関数は、指定された文字列の部分文字列を返します。この関数は、開始位置と終了位置をパラメーターとして受け取り、これらの位置の間の文字のシーケンスを返します。
例:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = mystr.substr(0,8); cout<<'Input string : '< 出力:
入力文字列:SoftwareTestingHelp
Substring(0,8):ソフトウェア

C ++の長さ
文字列の長さは、文字列に存在する文字数です。 C ++での文字列のstd :: stringオブジェクト表現は、length()関数を使用して文字列の長さを返します。
これとは別に、文字列のサイズを返すsizeメソッドもあります。以下に示す例では、length()関数にsizeメソッドを使用しています。文字列の長さを返す別の関数は「strlen」です。この関数は、文字配列で示される文字列の長さを返します。
例を挙げて、両方の機能を1つずつ見ていきます。
length()
ルーターのネットワークセキュリティキーはどこですか
関数プロトタイプ: size_t長さ()
パラメーター): 長さを調べる文字列によって呼び出されます。
戻り値: 文字列の長さであるsize_t型パラメータを返します。
説明: この関数は、呼び出される文字列オブジェクトの長さを検索します。
例:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; cout<<'Input string : '< 出力:
入力文字列:SoftwareTestingHelp
文字列の長さ(lengthメソッドを使用)は次のとおりです:19
文字列のサイズ(sizeメソッドを使用)は次のとおりです:19

上記のプログラムでは、文字列オブジェクトの長さとサイズをそれぞれ返すstd :: stringのlength関数とsize関数を使用します。長さとサイズは文字列の文字数を返すため、同じ出力が得られます。
strlen()
関数プロトタイプ: size_t strlen(const char * str);
パラメーター): str =>長さが検出されるnullで終了する文字列へのポインタ。
戻り値:R 文字列strの長さを示すsize_t値を返します。
説明: strlen()関数は、nullで終了する文字列の長さを返します。 strlen関数によってパラメーターとして受け取られる文字列は、ヌル終了文字配列です。
例:
#include #include using namespace std; int main() { char mystr1() = 'This a our first string'; char mystr2() = 'This is our second string'; int len_mystr1 = strlen(mystr1); int len_mystr2 = strlen(mystr2); cout << 'Length of mystr1 = ' << len_mystr1 << endl; cout << 'Length of mystr2 = ' << len_mystr2 << endl; if (len_mystr1> len_mystr2) cout << 'mystr1 is longer than mystr2'; else if (len_mystr1 < len_mystr2) cout << 'mystr2 is longer than mystr1'; else cout << 'mystr1 and mystr2 are equal in length'; return 0; }
出力:
mystr1の長さ= 23
mystr2の長さ= 25
mystr2はmystr1よりも長い

上記のプログラムでは、2つの異なる文字列を定義し、strlen関数を使用してそれらの個々の長さを見つけます。次に、2つの文字列の長さを比較し、文字列が等しいか等しくないかを判断します。
C ++検索
関数プロトタイプ: size_t find(string mysub)
パラメーター): mysub =>親文字列内で検索する文字列オブジェクト。
戻り値: size_t =>親文字列の部分文字列の最初の位置
説明: 文字列の検索機能は、親文字列内の部分文字列の位置を検索するために使用されます。この関数は親文字列によって呼び出され、位置が検出される部分文字列がパラメータとして渡されます。部分文字列が存在しない場合は、空の位置が返されます。
例:
#include #include using namespace std; int main() { string mystr = 'SoftwareTestingHelp'; string mysub = 'Test'; size_t pos = mystr.find(mysub); if (pos != string::npos) cout << 'First occurrence of string '< 出力:
文字列の最初の出現テスト:8
文字列の最初の出現ヘルプ:15

このプログラムは、文字列を「SoftwareTestingHelp」として定義します。 find関数を使用して、親文字列で最初に出現する文字列「Test」を見つけます。次に、「ヘルプ」文字列の出現を見つけます。出力は、検索された文字列の出現位置です。
分割文字列
区切り文字またはトークンを使用して文字列を分割すると、便利な操作になります。 C ++では、文字列の表現が複数あるため、さまざまなアプローチを使用して文字列を分割できます。ここでは、文字列を分割する2つのアプローチについて説明します。
std :: stringオブジェクトの分割
文字列オブジェクトを分割する最も簡単な方法は、オブジェクトで「substr」関数を使用し、終了位置として区切り文字を指定して、部分文字列を取得することです。このようにして、文字列全体をトラバースするまで、区切り文字で文字列を分割できます。
以下の例を見てみましょう。最初に「find」関数を使用して区切り文字の位置を検索し、次に部分文字列を検索して、最後に各トークンを出力します。
#include #include using namespace std; int main() { string mystr = 'This_is_software_testing_help'; string delimiter = '_'; size_t pos = 0; string token; while ((pos = mystr.find(delimiter)) != std::string::npos) { token = mystr.substr(0, pos); cout << token << endl; mystr.erase(0, pos + delimiter.length()); } cout << mystr<< endl; }
出力:
この
です
ソフトウェア
テスト
助けて

上記のプログラムに示されているように、指定された文字列を分割するために使用される区切り文字を指定します。ループでは、find関数を使用して区切り文字の出現を繰り返し検索し、それをsubstr関数に渡して、部分文字列を取得します。次に、取得したこれらの各トークンが出力として表示されます。
strtok関数を使用した文字配列の分割
文字列をトークン化する(区切り文字を使用して文字列を分割する)別の方法は、「strtok」関数を使用することです。以下では、「strtok」関数の詳細について説明します。
関数プロトタイプ: char * strtok(char str ()、const char * delim)
パラメーター): str () =>分割する文字列。
Delim =>文字列が分割される区切り文字。
戻り値: 親文字列を分割した後、次のトークンを返します。
説明: strtok関数は、指定された文字列を指定された区切り文字のトークンに分割します。この関数は、特定の文字列のすべてのトークンを取得するために、ループで呼び出す必要があります。トークンがなくなると、関数はnullを返します。
例:
#include #include using namespace std; int main() { char mystr() = 'This_is_software_testing_help'; char *token = strtok(mystr, '_'); while (token != NULL) { cout< 出力:
安全なオンラインyoutubeからmp3へのコンバーター
この
です
ソフトウェア
テスト
助けて

このプログラムでは、文字列と区切り文字を引数として取るstrtok関数を使用していることに注意してください。次に、指定された区切り文字に基づいて文字列をトークンに分割し、個々のトークンを表示します。
結論
このチュートリアルでは、C ++文字列に使用される一般的な重要な関数のいくつかを見てきました。
入力文字列の読み取り、文字列の検索、親文字列の部分文字列、文字列の長さ、文字列の分割などの関数とそのバリエーションについて説明しました。これらの関数は、文字列を効率的に読み取って操作するのに役立ちます。
次のチュートリアルでは、C ++文字列で使用される変換関数のいくつかを詳しく見ていきます。
=> すべてのC ++トレーニングシリーズ全体を見るには、ここにアクセスしてください。
推奨読書