C言語 バッファ内のデータを検索 - string.h - [ memchr ]

2008.11.22 Saturday | by LRESULT


ッファ内のデータを検索するには、memchr()を使います。

strchr()に似てますが、バッファとして扱う為、「¥0」があっても無視して
バッファ内を検索する辺りに違いがあります。
特に、検索対象が文字列である必要はありません。


memchr
書式 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」等があっても関係無く文字が検索出来ています。

カテゴリ:C言語 string.h | 22:30 | comments(0) | trackbacks(0) | -


コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/140

トラックバック