C ++でfind_first_of()関数を使用する方法

How Use Find_first_of Function C



C ++には、文字列データを処理するためのさまざまな組み込み関数があります。 NS find_first_of() 関数は、指定された文字が最初に出現する場所を見つけるために使用されます。この関数は、この関数の引数値として指定される文字列の最初の出現位置を返します。このチュートリアルでは、C ++で文字列を検索するためのこの関数のさまざまな使用法について説明しました。

前提条件

このチュートリアルの例を確認する前に、g ++コンパイラがシステムにインストールされているかどうかを確認する必要があります。 Visual Studio Codeを使用している場合は、必要な拡張機能をインストールして、C ++ソースコードをコンパイルして実行可能コードを作成します。ここでは、Visual StudioCodeアプリケーションを使用してC ++コードをコンパイルおよび実行しています。







find_first_of()関数の機能

NS find_first_of() 関数は、最初の引数の値に基づいてさまざまなタイプの変数を返すことができます。最初の引数値が文字列の場合、文字列の検索位置を返します。文字の配列へのポインタが最初の引数で指定されている場合、文字列の検索位置を返します。 3番目の引数の値が指定されている場合は、バッファー位置を返します。最初の引数に文字が指定され、それがメイン文字列に存在する場合、文字位置を返します。検索の開始位置は、この関数の2番目の引数で設定されます。この関数のさまざまな構文を以下に示します。



構文

string size_t find_first_of(const string&str、size_t pos = 0)const;
c-string size_t find_first_of(const char * s、size_t pos = 0)const;
バッファsize_tfind_first_of(const char * s、size_t pos、size_t n)const;
文字size_tfind_first_of(char c、size_t pos = 0)const;



例1:文字列の特定の文字を検索して置換する

次の例は、文字列内の特定の文字の位置を検索する方法を示しています。次のコードを使用してC ++ファイルを作成し、特定の文字を別の文字に置き換えます。コードでは、 find_first_of() 関数は、文字列内の特定の文字のすべての位置を検索し、ループを使用して文字を別の文字に置き換えるために使用されています。コードの実行後、元の文字列と置き換えられた文字列が出力されます。





//出力を印刷するために含める
#含む
// size_tを使用するために含める
#含む

int主要(()。
{{
//文字列変数を初期化します
時間:::ストリングstrData((「LinuxHintへようこそ」)。;
//元の文字列を印刷します
時間:::費用 << '元の文字列は次のとおりです:' +strData<< 'NS';
//文字「i」のすべての位置を調べます
時間:::size_tsearchList=strData。find_first_of(('私')。;
//ループを繰り返して、すべての「i」を「@」に置き換えます
その間 ((searchList=時間:::ストリング:::npos)。
{{
strData[searchList] = '@';
searchList=strData。find_first_of(('私'、searchList+1)。;
}
//変更された文字列を出力します
時間:::費用 << '変更された文字列は次のとおりです:' +strData<< 'NS';

戻る 0;
}

出力:

上記のコードを実行すると、次の出力が表示されます。



例2:検索文字の最初の位置を検索する

次のコードを使用してC ++ファイルを作成し、複数の文字の文字列の位置を検索して、メインの文字列と一致する文字の最初の位置を返します。文字列データは文字列変数に割り当てられており、最初の位置は整数変数に格納されています。コード実行後、位置の値が出力されます。

//出力を印刷するために含める
#含む

int主要(()。
{{
//文字列変数を初期化します
時間:::ストリングstrData(( 「基本的なC ++プログラミング」)。;
//位置を格納する整数変数を宣言します
intポジション;
//文字「C ++」を検索します
ポジション=strData。find_first_of(( 「K ++」 )。;
//位置の値を確認します
もしも ((ポジション> = 0)。
{{
//任意の文字が見つかった場合、位置を出力します
時間:::費用 << 'キャラクター '' <<strData[ポジション]
<< ''が見つかりました ' << '位置で' <<ポジション<< 'NS';
}

戻る 0;
}

出力:

上記のコードを実行すると、次の出力が表示されます。ここで、キャラクター、 ‘ + 文字列の ’、‘ K ++ ’がその位置で見つかりました、 7 メイン文字列の ‘ 基本的なC ++プログラミング '。

例3:特定の位置の後に特定の文字を検索する

次のコードを使用してC ++ファイルを作成し、特定の位置の後に特定の文字を検索します。文字列データは文字列変数に格納され、特定の文字列が位置13の後に検索されます。検索文字列のいずれかの文字がメイン文字列で見つかった場合、位置値が返されます。

//出力を印刷するために含める
#含む

int主要(()。
{{
//文字列変数を初期化します
時間:::ストリングstrData= 「生きるために食べるのではなく、生きるために食べる」;
//元の文字列を印刷します
時間:::費用 << '元の文字列は次のとおりです:' +strData<< 'NS';
//最後の文字が見つかった位置を印刷します
時間:::費用<<'位置で見つかった最後に一致する文字:'
<<strData。find_first_of(('で'13)。 << 'NS';
戻る 0;
}

出力:

上記のコードを実行すると、次の出力が表示されます。ここで、キャラクター、 ‘ 文字列の ’、‘ ’がその位置で見つかりました、 15 メイン文字列の ‘ 生きるために食べるのではなく、生きるために食べる '。

例4:最初に一致する番号の位置を検索する

次のコードを使用してC ++ファイルを作成し、2番目のベクトルリストの最初のベクトルリストの各番号を検索して、最初のベクトルリストの一致する番号の位置を返します。一致する引数が見つかった場合、位置の値が返されます。それ以外の場合は、メッセージが出力されます。

//出力を印刷するために含める
#含む
//ベクター内のデータを検索するために含める
#含む
//ベクターデータを使用するために含める
#含む

int主要(()。
{{
// 2つのベクトルリストを宣言します
時間:::ベクターlist1{{10565317};
時間:::ベクターlist2{{2775383255};
// list1のデータをlist2に検索します
自動出力=時間:::find_first_of((list1。始める(()。、list1。終わり(()。、list2。始める(()。、list2。終わり(()。)。;
//一致する番号の位置を読み取ります
intポジション=時間:::距離((list1。始める(()。、出力)。;

//任意の数のlist1が任意の数のlist2と一致することを確認します
もしも ((出力<list1。終わり(()。)。 {{
時間:::費用 << '最初に一致する番号' <<list1[ポジション] << '位置で見つかりました' <<ポジション<< 'NS';
}
そうしないと {{
時間:::費用 << '一致する番号が見つかりません。NS';
}
}

出力:

上記のコードを実行すると、次の出力が表示されます。最初の配列の数値5が2番目の配列に存在し、この数値の位置は1です。

結論

find_first_of()関数を使用して、さまざまなプログラミング目的で文字または数字を検索できます。この関数は、さまざまな検索の問題を解決するために使用できます。このチュートリアルを読んだ後、C ++プログラマーがこの関数を適切に使用できるようになることを願っています。