先頭へ戻る

wmemchr | Programming Place Plus C言語編 標準ライブラリのリファレンス

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(名前順)

Programming Place Plus トップページ -- C言語編 -- 標準ライブラリのリファレンス(ヘッダ別)

先頭へ戻る

wmemchr関数

概要

メモリ上から、特定のワイド文字を探す。

ヘッダ

wchar.h

形式

wchar_t* wmemchr(const wchar_t* s, wchar_t c, size_t n);

引数

s

探索するメモリの先頭のメモリアドレス。

c

探索するワイド文字。

n

探索する文字数。

戻り値

発見された場合は、メモリ上のそのワイド文字を指すポインタ。
発見できなかった場合は、ヌルポインタ。

詳細

引数s が指す位置を先頭として、そこから 引数n の文字数分の範囲を探索し、引数c と一致するものを探す。

注意

探索対象を表す引数s は const であるのにも関わらず、戻り値は非const のポインタである。そのため、実引数にワイド文字列リテラルを渡した場合に、戻り値で得られたポインタを経由してワイド文字を変更するプログラムはコンパイルが通るが、動作は未定義になる。
(C++ では、const指定の扱いが厳しくなっているため、この関数は const版と非const版にオーバーロードされている)。

使用例

#include <stdio.h>
#include <wchar.h>

int main(void)
{
    const wchar_t str[] = L"abc\0def";
    const wchar_t* p;

    p = wmemchr( str, L'd', sizeof(str)/sizeof(str[0]) );
    if( p == NULL ){
        puts( "見つからない。" );
    }
    else{
        wprintf( L"%ls\n", p );
    }

    return 0;
}

実行結果:

def

関連

ワイド文字列からの探索に特化した wcschr関数がある。
メモリ上からマルチバイト文字を検索する memchr関数がある。

解説章


参考リンク


------------------------------------------------------------------------

更新履歴

'2018/4/20 全体的に文章を見直し修正。
「NULL」という表記を「ヌルポインタ」に修正。

'2018/1/22 新規作成。


------------------------------------------------------------------------

標準ライブラリのリファレンス(名前順)のトップページへ

標準ライブラリのリファレンス(ヘッダ別)のトップページへ

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー