strrchr() — ストリング内で文字が最後に現れる位置の検出

フォーマット

#include <string.h>
char *strrchr(const char *string, int c);

言語レベル

ANSI

スレッド・セーフ

はい

ロケール依存

この関数の振る舞いは、現行ロケールの LC_CTYPE カテゴリーの影響を受ける可能性があります。詳細については、CCSID およびロケールの理解を参照してください。

説明

strrchr() 関数は、string 内で (文字に変換された) c が最後に現れる位置を検索します。終了ヌル文字は、 string の一部と見なされます。

戻り値

strrchr() 関数は、string 内の c が最後に現れる位置へのポインターを戻します。指定文字が検出されない場合は、NULL ポインターが戻されます。

この例では、strchr()strrchr() の使用法を比較します。ストリングを調べて、ストリング内で p が最初に現れる位置と最後に現れる位置を検索します。
#include <stdio.h>
#include <string.h>
 
#define SIZE 40
 
int main(void)
{
  char buf[SIZE] = "computer program";
  char * ptr;
  int    ch = 'p';
 
  /* This illustrates strchr */
  ptr = strchr( buf, ch );
  printf( "The first occurrence of %c in '%s' is '%s'¥n", ch, buf, ptr );
 
  /* This illustrates strrchr */
  ptr = strrchr( buf, ch );
  printf( "The last occurrence of %c in '%s' is '%s'¥n", ch, buf, ptr );
}
 
/*****************  Output should be similar to:  *****************
 
The first occurrence of p in 'computer program' is 'puter program'
The last occurrence of p in 'computer program' is 'program'
*/