Spec-Zone.ru › C

wcsrchr

Определено в заголовке <wchar.h>
wchar_t *wcsrchr( const wchar_t *str, wchar_t ch );
(1) (с C95)
/*QWchar_t*/ *wcsrchr( /*QWchar_t*/ *str, wchar_t ch );
(2) (с C23)
1) Находит последнее вхождение широкого символа ch в широкой строке, на которую указывает str.
2) Универсальная по типу функция, эквивалентная (1). Пусть T — это тип объекта широкого символа без квалификаторов.
  • Если str имеет тип const T*, то возвращаемый тип — const wchar_t*.
  • В противном случае, если str имеет тип T*, то возвращаемый тип — wchar_t*.
  • В противном случае, поведение не определено.
Если определение макроса каждой из этих универсальных функций подавлено для доступа к фактической функции (например, если используется (wcsrchr) или указатель на функцию), то объявление фактической функции (1) становится видимым.

Параметры

str - указатель на завершающуюся нулём широкую строку для анализа
ch - широкий символ для поиска

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

Указатель на найденный символ в str, или нулевой указатель, если такой символ не найден.

Пример

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
 
int main(void)
{
    wchar_t arr[] = L"白猫 黒猫 кошки";
    wchar_t *cat = wcsrchr(arr, L'猫');
    wchar_t *dog = wcsrchr(arr, L'犬');
 
    setlocale(LC_ALL, "en_US.utf8");
 
    cat ? printf("The character 猫 found at position %td\n", cat - arr)
        : puts("The character 猫 not found");
 
    dog ? printf("The character 犬 found at position %td\n", dog - arr)
        : puts("The character 犬 not found");
}

Вывод:

The character 猫 found at position 4
The character 犬 not found

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2023):
    • 7.31.4.6.4 Функция wcsrchr (p: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
    • 7.29.4.5.4 Функция wcsrchr (p: 318)
  • Стандарт C11 (ISO/IEC 9899:2011):
    • 7.29.4.5.4 Функция wcsrchr (p: 436)
  • Стандарт C99 (ISO/IEC 9899:1999):
    • 7.24.4.5.4 Функция wcsrchr (p: 382)

См. также

wcschr
(C95)
находит первое вхождение широкого символа в широкой строке
(функция)
wcspbrk
(C95)
находит первое вхождение любого широкого символа из одной широкой строки в другой широкой строке
(функция)
Документация C++ для wcsrchr

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

Spec-Zone.ru

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