C言語 標準関数 | 応用 | サンプル

標準関数
構文
応用

管理人

プライバシーポリシー


書式

#include <string.h>

void * memchr( const void *str , int chr , size_t len );

■戻り値:
文字chrを発見した場合はそのアドレスを返す。発見できなかった場合はNULL(\0)を返す。

説明

strの先頭アドレスから文字chrを無条件にlen文字分を探してそのアドレスを返す。発見できなかった場合はNULLを返す。

strで定義されたサイズを超えてもlen文字分探す。strの途中にNULL(\0)があってもlen文字分探す。

サンプル

#include <string.h>

main() {
  char str[] = "abc\0defgh\0ijk";
  char * ptr;

  printf( "str[0]=%s\n" , str );/* abc */
  printf( "str[4]=%s\n" , &str[4] );/* defgh */
  printf( "str[10]=%s\n" , &str[10] );/* ijk */

  ptr = ( char * )memchr(( void * )str , ( int )'j'
                                         , sizeof( str ));
  printf( "ptr=%s\n" , ptr );/* jk */
                                        /* 14(NULL含む) */
  printf( "strの定義サイズはNULLを含んで%dByteです。\n"
                                       , sizeof( str ));

  ptr = ( char * )memchr(( void * )str , ( int )'z'
                                     , sizeof( str ));
  if( ptr == NULL ) {
    printf( "zは発見できませんでした。\n" );
  }
}

実行結果

str[0]=abc
str[4]=defgh
str[10]=ijk
ptr=jk
strの定義サイズはNULLを含んで14Byteです。
zは発見できませんでした。


Copyright © 2008-2015 http://hitorilife.com All Rights Reserved.