名稱空間
變體
操作

wmemchr

來自 cppreference.com
< c‎ | string‎ | wide
在標頭檔案 <wchar.h> 中定義
wchar_t *wmemchr( const wchar_t *ptr, wchar_t ch, size_t count );
(1) (自 C95 起)
/*QWchar_t*/ *wmemchr( /*Qwchar_t*/ *ptr, wchar_t ch, size_t count );
(2) (自 C23 起)
1) 在 `ptr` 指向的寬字元陣列或相容型別的整數陣列的初始 `count` 個寬字元中,查詢寬字元 `ch` 的第一次出現。
2) 等同於 (1) 的型別泛型函式。令 T 為不帶限定符的寬字元物件型別。
  • 如果 `ptr` 的型別是 `const T*`,則返回型別是 `const wchar_t*`。
  • 否則,如果 `ptr` 的型別是 `T*`,則返回型別是 `wchar_t*`。
  • 否則,行為未定義。
如果抑制這些通用函式中的每個宏定義以訪問實際函式(例如,如果使用 `(wmemchr)` 或函式指標),則實際函式宣告 (1) 將可見。

如果 `count` 為零,則函式返回一個空指標。

目錄

[編輯] 引數

ptr - 指向要檢查的寬字元陣列的指標
ch - 要查詢的寬字元
count - 要檢查的寬字元數

[編輯] 返回值

指向寬字元位置的指標,如果找不到該字元,則為 null 指標。

[編輯] 示例

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
 
int main(void)
{
    wchar_t str[] = L"諾不輕信,故人不負我\0諾不輕許,故我不負人。";
    size_t sz = sizeof str / sizeof *str;
 
    wchar_t target = L'許';
    wchar_t* result = wmemchr(str, target, sz);
 
    if (result)
    {
        setlocale(LC_ALL, "en_US.utf8");
        printf("Found '%lc' at position %td\n",target, result - str);
    }
}

可能的輸出

Found '許' at position 14

[編輯] 參考

  • C23 標準 (ISO/IEC 9899:2024)
  • 7.29.4.5.8 wmemchr 函式 (p: 待定)
  • C17 標準 (ISO/IEC 9899:2018)
  • 7.29.4.5.8 wmemchr 函式 (p: 待定)
  • C11 標準 (ISO/IEC 9899:2011)
  • 7.29.4.5.8 wmemchr 函式 (p: 438)
  • C99 標準 (ISO/IEC 9899:1999)
  • 7.24.4.5.8 wmemchr 函式 (p: 384)

[編輯] 另請參閱

在陣列中搜索字元的第一次出現
(函式) [編輯]
(C95)
在寬字串中查詢寬字元的首次出現
(函式) [編輯]
C++ 文件 關於 wmemchr