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

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

先頭へ戻る

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 に保存 Twitter でツイート Twitter をフォロー
Facebook でシェア Google+ で共有 LINE で送る rss1.0 取得ボタン RSS