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

C/C++のstrchr()関数とは?文字列内の文字検索方法を解説

strchr()関数は、文字列の中から特定の文字を検索するために使用される標準ライブラリ関数です。第2引数として渡された文字が最初に出現する位置を探し、見つかった場合はその文字へのポインタを返します。文字が見つからなかった場合はNULLを返します。

strchr()関数の構文

C言語におけるstrchr()関数の基本的な構文は以下の通りです。

char *strchr(const char *string, int character);

パラメータ

  • string − 検索対象となる文字列(走査される文字列)。
  • character − 文字列の中で検索したい文字。int型として渡されますが、内部的にはchar型の文字として扱われます。

戻り値

  • 検索に成功した場合:最初に一致した文字へのポインタ(char*)。
  • 検索に失敗した場合:NULL

C言語でのstrchr()の使用例

以下は、strchr()関数を使って文字列内の文字を検索する具体的なプログラム例です。

#include <stdio.h>
#include <string.h>

int main() {
    char s[] = "Helloworld!";
    char c = 'o';
    char *result = strchr(s, c);
    printf("文字検索後の文字列 : %s", result);
    return 0;
}

実行結果

文字検索後の文字列 : oworld!

プログラムの解説

上記のプログラムでは、まずchar型の文字列「Helloworld!」を用意し、検索したい文字として「o」を変数cに代入しています。そして、strchr()関数に文字列sと文字cを渡して呼び出し、その結果をポインタ変数*resultに格納しています。

char s[] = "Helloworld!";
char c = 'o';
char *result = strchr(s, c);

文字列「Helloworld!」の中で「o」が最初に現れるのは4番目の文字(インデックス4)なので、strchr()はその位置へのポインタを返します。printf()でこのポインタを出力すると、ポインタ以降の残りの文字列である「oworld!」が表示されます。

注意点

strchr()を使用する際には、<string.h>ヘッダファイルをインクルードする必要があります。また、戻り値がNULLになる可能性があるため、実際の開発では返されたポインタがNULLかどうかを必ず確認してから使用することが推奨されます。

  1. C++の文字列at()関数とは?使い方とサンプルコードを解説

    この記事では、C++におけるat()関数の概要と基本的な使い方について解説します。at()関数とはat()関数は、C++のstd::stringクラスが提供するメンバ関数の一つで、指定した位置(インデックス)にある文字にアクセスするために使用されます。[]演算子でも同様に文字へアクセスできますが、at()関数は範囲外のインデックスを指定した場合にout_of_range例外をスローするため、より安全に扱えるという特徴があります。サンプルコード次のプログラムでは、at()関数を使って文字列内の各文字を先頭から順に取り出し、1行ずつ出力しています。#include<iostream>

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

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