
この関数の目的
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
*/