C言語 文字列内の文字を後ろから検索 - string.h - [ strrchr ]
2008.11.16 Sunday | by LRESULT
文字列内の文字を後ろから検索するには、strrchr()を使用します。
書式 | char* strrchr( const char *s, int c ) |
---|---|
機能 | 文字列内の文字を後ろから検索 |
引数 | const char *s : 検索元の文字列 int c : 検索する文字 |
戻り値 | 検索文字を最初に発見した位置のポインタを返し、 発見出来なかったときは、NULLを返します。 |
※ 先頭から検索するstrchr()については、こちら。
文字列「ABCDEFGABCDEFG」内から、文字「C」を後ろから検索して 最初に発見された位置を表示します。 |
---|
#include <stdio.h> #include <string.h> int main(void) { char *s = "ABCDEFGABCDEFG"; int c = 'C'; char *ret; ret = strrchr( s, c ); if( ret != NULL ){ printf( "%cを%d番目に発見しました¥n", c, ret - s ); } else{ printf( "%cは発見出来ません¥n", c ); } return 0; } |
Cを9番目に発見しました |
---|
と、表示されます。 strrchr()の戻り値は発見した位置のポインタなので 文字列s の先頭アドレスからのポインタの引き算で位置を割り出します。 |