C++ 文字列に部分文字列が含まれています

C Wen Zi Lieni Bu Fen Wen Zi Liega Hanmareteimasu



C++ には文字列データ型があり、さまざまな関数を適用して文字列を使用してさまざまなタスクを実行できます。部分文字列が元の文字列内に存在するかどうかを確認できます。 「文字列には部分文字列が含まれている」とも言えます。このガイドでは、「文字列に部分文字列が含まれている」を見つけるのに役立つテクニックを学びます。 「find()」および「strstr()」関数は、C++ プログラミングでこのタスクを実行するのに役立ちます。

例 1:

「iostream」と「string」は、文字列を操作し、データの入力または出力を行う必要があるため、ここに含まれるヘッダー ファイルです。したがって、これらのヘッダー ファイルをここに含める必要があります。この後、「using」キーワードを使用して「namespace std」を組み込みます。したがって、すべての関数を含むこの「std」をコード内に個別に配置する必要はありません。そして、ここで「main()」関数が呼び出されます。







ここで、「str_1」文字列を宣言し、この変数に文字列データを割り当てます。次に、「string」データ型の「str_2」という名前の別の変数も初期化し、この「str_2」変数に「like」を代入します。この下では、「bool」キーワードを使用して true または false の結果を返します。この「bool」データ型で「stringHasStr」を初期化し、「find()」関数を利用します。これは「部分文字列を含む文字列」を検索します。 「str_1」は完全な文字列で、「str_2」は部分文字列です。



ここでは、この文字列に一致するものがないことを示すために使用される「npos」キーワードも追加します。文字列に部分文字列が含まれているかどうかをチェックし、結果をこの「stringHasStr」ブール変数に格納します。



次に、「if」条件に進み、この「stringHasStr」変数をこの「if」条件に渡します。この bool 変数に格納された結果が「true」の場合、この「if」条件の後のステートメントで「cout」を使用し、ここで見つかった文字列を表示します。ただし、この bool 変数に「false」の結果が格納されている場合は、他の部分が使用され、ここに文字列が見つからないことが表示されます。





コード 1:

#include
#include <文字列>

名前空間 std を使用します。
整数メイン ( )
{
文字列 str_1 = 「C++ プログラミング言語が好きです」 ;
文字列 str_2 = 'のように' ;
ブール文字列HasStr = str_1.find ( str_2 ) = 文字列::npos;
もし ( stringHasStr ) {
コート << 'ここで文字列が見つかります。' << str_2 << 終わり;
}
それ以外 {
コート << 「文字列が見つかりません」 << 終わり;
}
戻る 0 ;
}



出力:

この指定された出力では、文字列に部分文字列が含まれていることをレンダリングし、それをここに表示します。これを「find()」関数を利用して確認します。

例 2:

ここには、「iostream」、「string」、「cstring」という 3 つのヘッダー ファイルが含まれています。次に、「namespace std」を配置した後、「main()」を呼び出します。 「new_str」文字列が宣言され、文字列データが割り当てられます。

次に、「sub_str」という「文字列」データ型の 2 番目の変数を初期化し、「very」値を与えます。次に「const char*」を配置します。したがって、メモリ内の別の場所を指すようにポインタの値を変更することは不可能です。ここでは、「FindingStr」変数をこの「const char*」ポインタとして宣言します。 「strstr()」メソッドで初期化し、文字列を null 値で終わる文字配列に変換する「c_str()」関数とともに両方の文字列を渡します。この「strstr()」メソッドは、「new_str」文字列に「sub_str」部分文字列が含まれているかどうかを確認するのに役立ちます。次に、「if」に「FindingStr」を追加します。元の部分文字列が見つかった場合は、「cout」を使用して「if」の後のステートメントが実行されます。部分文字列が見つからない場合は、「else」部分に直接移動し、「else」部分の後に配置された結果を出力します。

コード 2:

#include
#include <文字列>
#include

名前空間 std を使用します。
整数メイン ( )
{
文字列 new_str = 「外は雨が降っていて、とても気持ちの良い天気です。」 ;
文字列 sub_str = 'とても' ;
定数文字 * FindingStr = strstr ( new_str.c_str ( ) 、sub_str.c_str ( ) ) ;
もし ( 検索結果 ) {
コート << 「文字列が見つかりました。その文字列は次のとおりです。」 << サブ文字列 << 終わり;
}
それ以外 {
コート << 「文字列が見つかりません」 << 終わり;
}
戻る 0 ;
}

出力:

「if」の後に追加したステートメントが表示され、ここに部分文字列が出力されるため、指定された文字列に部分文字列が含まれていることに気づくかもしれません。これを「strstr()」関数を利用して確認します。

例 3:

ここでは、「myNewStr」と「mySubStr」という 2 つの文字列変数を初期化します。次に、文字列データを割り当て、2 つの整数変数「posOfStr」と「indexOfStr」を宣言します。

この下では、「while()」ループを利用し、「find()」関数変数をこの「while()」ループ内の「indexOfStr」変数に割り当てます。この「find()」関数に「mySubStr」と「posOfStr」という 2 つの変数を渡します。次に、「find」関数の結果が「npos」と等しくないことをチェックする「npos」キーワードを配置します。この後、インデックス値を 1 つインクリメントして「posOfStr」変数に格納する「cout」を利用します。

コード 3:

#include
#include <文字列>

名前空間 std を使用します。
整数メイン ( {
文字列 myNewStr = 「ここで文字列を見つけています」 ;
文字列 mySubStr = '弦' ;
int posOfStr = 0 ;
int インデックスOfStr;
その間 ( ( IndexOfStr = myNewStr.find ( mySubStr、posOfStr = 文字列::npos {
コート << ' 部分文字列は ' << 「」 << mySubStr << 「」 << ' インデックス番号で見つかりました: ' << 文字列のインデックス << 終わり;
posOfStr = インデックスOfStr + 1 ;
}
戻る 0 ;
}

出力:

ここでは、指定された文字列に部分文字列が含まれており、この文字列のインデックス番号が「19」であることを示しており、この結果にも表示されています。

例 4:

このコードには、「bits/stdc++.h」ヘッダー ファイルが含まれています。これで、必要なライブラリがすべて含まれているため、他のヘッダー ファイルをインクルードする必要がなくなります。 「main()」を呼び出した後、「string」データ型の「org_str」変数と「sub_str」変数を初期化します。次に、「strstr()」関数を利用する「if」条件を追加します。この関数は、指定された文字列に目的の部分文字列が含まれているかどうかを検索します。次に、部分文字列がここにあることを出力する「cout」ステートメントを追加します。次に、「if」条件が満たされない場合、または文字列内に部分文字列が見つからない場合にのみ実行される「else」部分も配置します。

この後、「sub_str2」変数を宣言し、ここに文字列データを代入します。次に、「if」条件が挿入され、「strstr()」関数が使用されます。このメソッドは、指定された文字列に要求された部分文字列が含まれているかどうかを検索します。結果は「cout」コマンドを使用してここに出力されます。また、「if」条件が満たされない場合、または文字列内に部分文字列が見つからない場合にのみ実行される「else」セクションも含まれています。

コード 4:

#include
名前空間 std を使用します。
整数メイン ( {
文字列 org_str = 「C++プログラミング言語」 ;
文字列 sub_str = 'プログラム' ;
もし ( strstr ( org_str.c_str ( ,sub_str.c_str (
{
コート << 'ここでの部分文字列は ' << 「」 << サブ文字列 << 「」 << ' は ' に存在します << org_str << 終わり;
}
それ以外 {
コート << 「文字列に部分文字列が存在しません。」 << 終わり;
}
文字列sub_str2 = 「ジャワ」 ;

もし ( strstr ( org_str.c_str ( ,sub_str2.c_str (
{
コート << 'ここでの部分文字列は ' << 「」 << サブ_str2 << 「」 << ' は ' に存在します << org_str << 終わり;
}
それ以外 {
コート << 「この文字列には部分文字列が存在しません。」 << 終わり;
}
戻る 0 ;
}

出力:

最初の「strstr()」関数の結果は、文字列に部分文字列が含まれていることを示しますが、2 番目の「strstr()」関数の結果は、文字列に部分文字列が存在しないことを示します。

結論

このガイドでは、「文字列には部分文字列が含まれる」という概念を徹底的に検討します。 「文字列に部分文字列が含まれているかどうか」を検索するのに役立つ 2 つの方法を検討しました。このガイドでは、このタスクを実行するために C++ が提供する「find()」および「strstr()」関数について説明しました。これらの関数を利用して「文字列に部分文字列が含まれているかどうか」を確認する方法を学習したユニークな例を示します。