arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
strchr()
strchr()

この関数の目的

strchr()は、文字列中の文字を検索する。

定義

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

働き

この関数は、 s が指す文字列の中で最初の( char に変換された) c が出現する位置を特定する。 終端のヌル文字は文字列の一部とみなされる。

返り値は、特定された文字へのポインタか、文字列内に文字が出現しなければヌルポインタである。

解説

ヌル文字より後の文字は検索されないが、ヌル文字自身は検索の対象になる。 よって、 strchr(s, '\0') とすれば文字列 s の終端ヌル文字へのポインタが得られる。 これは &s[strlen(s)] としても同じことである。

得られた文字が何文字目に当たるかを知るには、以下の例が参考になると思う。

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

void main(void){
	const char *s = "Jugemu Jugemu Gokohno Surikire";
	const char *p = s;
	while(p = strchr(p, 'u')){
		printf("%u ", (unsigned)(p - s));
		p++;
	}
}
/* 出力例:
1 5 8 12 23
 */
arrow 若葉プログラミング塾 > 知識の玉手箱 > C関数リファレンス >
KC