Spec-Zone.ru › C

wmemchr

Определено в заголовке <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) Находит первое вхождение широкого символа ch в начальных count широких символах массива широких символов или массива целочисленных значений совместимого типа, на которые указывает ptr.
2) Универсальная функция, эквивалентная (1). Пусть T — это тип объекта широкого символа без квалификаторов.
  • Если ptr имеет тип const T*, тип возвращаемого значения — const wchar_t*.
  • В противном случае, если ptr имеет тип T*, тип возвращаемого значения — wchar_t*.
  • В противном случае поведение неопределено.
Если определение макроса каждой из этих универсальных функций подавлено для доступа к фактической функции (например, если используется (wmemchr) или указатель на функцию), видимым становится фактическое объявление функции (1).

Если count равно нулю, функция возвращает нулевой указатель.

Параметры

ptr - указатель на массив широких символов для проверки
ch - широкий символ, который необходимо найти
count - количество широких символов для проверки

Возвращаемое значение

Указатель на расположение широкого символа или нулевой указатель, если такой символ не найден.

Пример

#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:2023):
    • 7.29.4.5.8 Функция wmemchr (p: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.29.4.5.8 Функция wmemchr (p: TBD)
  • Стандарт 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)

См. также

memchr
ищет первое вхождение символа в массиве
(функция)
wcschr
(C95)
находит первое вхождение широкого символа в широкой строке
(функция)
Документация C++ по wmemchr

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/wide/wmemchr

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API