C++
 Computer >> コンピューター >  >> プログラミング >> C++

C++のstrchr()関数とは?使い方・構文・サンプルコードをわかりやすく解説

本記事では、C++ STLに含まれるstrchr()関数について、その仕組み、構文、そして具体的な使用例を詳しく解説します。

strchr()関数とは?

strchr()は、C++ STLに組み込まれている関数で、<cstring>ヘッダーファイルで定義されています。この関数は、文字列の中である文字が最初に出現する位置を検索するために使われ、見つかった位置へのポインタを返します。

もし指定した文字が文字列内に存在しない場合は、ヌルポインタ(NULL)が返されます。

構文

char* strchr( char* str, char charac );

パラメータ

この関数は以下の引数を受け取ります。

  • str − 検索対象となる文字列です。

  • charac − 文字列strの中から探したい文字です。

戻り値

文字列内でその文字が最初に出現した位置へのポインタを返します。文字が見つからなかった場合には、ヌルポインタを返します。

入力例:

char str[] = "Tutorials Point";
char ch = 'u';

出力例:

u is present in the string.

サンプルコード①:文字の存在チェック

まずは基本的な使い方として、指定した文字が文字列に存在するかどうかを判定する例を見てみましょう。

#include <iostream>
#include <cstring>
using namespace std;
int main(){
    char str[] = "Tutorials Point";
    char ch_1 = 'b', ch_2 = 'T';
    if (strchr(str, ch_1) != NULL)
       cout << ch_1 << " " << "is present in string" << endl;
    else
       cout << ch_1 << " " << "is not present in string" << endl;
    if (strchr(str, ch_2) != NULL)
       cout << ch_2 << " " << "is present in string" << endl;
    else
       cout << ch_2 << " " << "is not present in string" << endl;
    return 0;
}

実行結果

b is not present in string
T is present in string

この例では、文字「b」は文字列「Tutorials Point」に存在しないためNULLが返され、「T」は先頭に存在するためその位置へのポインタが返されます。

サンプルコード②:検索結果を利用した処理

次に、strchr()による検索結果を条件分岐に活用し、文字が見つかった場合にのみ文字列連結を行う例を紹介します。

#include <iostream>
#include <cstring>
using namespace std;
int main(){
    char str[] = "Tutorials Point";
    char str_2[] = " is a learning portal";
    char ch_1 = 'b', ch_2 = 'T';
    if (strchr(str, ch_1) != NULL){
       cout << ch_1 << " " << "is present in string" << endl;
    }
    else{
       cout << ch_1 << " " << "is not present in string" << endl;
    }
    if (strchr(str, ch_2) != NULL){
       cout << ch_2 << " " << "is present in string" << endl;
       strcat(str, str_2);
       cout<<"String after concatenation is : "<<str;
    }
    else{
       cout << ch_2 <<" " << "is not present in string" << endl;
    }
    return 0;
}

実行結果

b is not present in string
T is present in string
String after concatenation is : Tutorials Point is a learning portal

このように、strchr()は単なる文字検索にとどまらず、戻り値のポインタを条件判定に使うことで、柔軟なプログラム制御を実現できます。文字列操作を行うC++プログラムにおいて、非常に実用的な関数といえるでしょう。

  1. C++のstrchr()関数とは?文字列から文字を検索する方法をわかりやすく解説

    C++には、文字列操作を簡単に行うための標準ライブラリ関数が数多く用意されています。その中のひとつが strchr() 関数です。strchr() は、指定した文字列の中から特定の文字が最初に現れる位置を検索し、その位置へのポインタを返す関数です。この関数を使用するには、ヘッダーファイル <cstring> をインクルードする必要があります。strchr()関数の構文strchr() 関数の構文は以下のとおりです。char *strchr( const char *str, int c )各引数の意味は次のとおりです。str: 検索対象となる文字列(C言語形式のヌル終端文字列)c:

  2. C++のフレンド関数とフレンドクラスの基本を解説

    C++におけるフレンド関数(friend function)とは、クラスのスコープ外で定義される関数でありながら、そのクラスのすべてのprivateメンバーおよびprotectedメンバーにアクセスする権限を持つ特別な関数です。フレンド関数のプロトタイプ(宣言)はクラス定義の中に記述しますが、あくまで「友達」として扱われるだけであり、クラスのメンバー関数にはなりません。この点は重要なポイントです。フレンドとして指定できるものフレンドとして宣言できるのは、以下のようなものです。通常の関数関数テンプレート他のクラスのメンバー関数クラス全体(この場合、そのクラスのすべてのメンバーがフレンドになります