C言語 バッファ内のデータを検索 - string.h - [ memchr ]
2008.11.22 Saturday | by LRESULT
バッファ内のデータを検索するには、memchr()を使います。
strchr()に似てますが、バッファとして扱う為、「¥0」があっても無視して
バッファ内を検索する辺りに違いがあります。
特に、検索対象が文字列である必要はありません。
書式 | void* memchr( const void *s, int c, size_t n ) |
---|---|
機能 | バッファ内のデータを検索 |
引数 | const void *s : 検索対象となるバッファ int c : 検索するデータ size_t n : 検索バイト数 |
戻り値 | 検索データ(c)を最初に発見した位置のポインタを返し、 発見出来なかったときは、NULLを返します。 |
文字列「ABCDEFG¥0¥tHIJKLMN」内から、文字「L」を検索して 最初に発見された位置を表示します。 |
---|
#include <stdio.h> #include <string.h> int main(void) { char c = 'L'; char *s = "ABCDEFG¥0¥tHIJKLMN"; char *ret; ret = (char *)memchr( s, c, 20 ); if( ret != NULL ){ printf( "%cを%d番目に発見しました¥n", c, ret - s ); } else{ printf( "%cを発見出来ません¥n", c ); } return 0; } |
Lを13番目に発見しました |
---|
と、表示されます。 「¥0」等があっても関係無く文字が検索出来ています。 |