Namespaces
Variants

iswdigit

From cppreference.net
< c ‎ | string ‎ | wide
Определено в заголовочном файле <wctype.h>
int iswdigit ( wint_t ch ) ;
(начиная с C95)

Проверяет, соответствует ли заданный широкий символ (при сужении) одному из десяти символов десятичных цифр 0123456789 .

Содержание

Параметры

ch - широкий символ

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

Ненулевое значение, если широкий символ является числовым символом, и ноль в противном случае.

Примечания

iswdigit и iswxdigit являются единственными стандартными функциями классификации широких символов, на которые не влияет текущая установленная локаль C.

Пример

Некоторые локали предоставляют дополнительные классы символов, которые обнаруживают не-ASCII цифры

#include <locale.h>
#include <stdio.h>
#include <wchar.h>
#include <wctype.h>
void test(wchar_t a3, wchar_t u3, wchar_t j3)
{
    printf("\t '%lc'  '%lc' '%lc'\n", a3, u3, j3);
    printf("iswdigit: %d    %d    %d\n",
           !!iswdigit(a3),
           !!iswdigit(u3),
           !!iswdigit(j3));
    printf("jdigit:   %d    %d    %d\n",
           !!iswctype(a3, wctype("jdigit")),
           !!iswctype(u3, wctype("jdigit")),
           !!iswctype(j3, wctype("jdigit")));
}
int main(void)
{
    wchar_t a3 = L'3';  // the ASCII digit 3
    wchar_t u3 = L'三'; // the CJK numeral 3
    wchar_t j3 = L'3'; // the full-width digit 3
    setlocale(LC_ALL, "en_US.utf8");
    puts("In American locale:");
    test(a3, u3, j3);
    setlocale(LC_ALL, "ja_JP.utf8");
    puts("\nIn Japanese locale:");
    test(a3, u3, j3);
}

Возможный вывод:

In American locale:
         '3'  '三' '3'
iswdigit: 1    0    0
jdigit:   0    0    0
In Japanese locale:
         '3'  '三' '3'
iswdigit: 1    0    0
jdigit:   0    0    1

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • TBD 7.30.2.1.5 Функция iswdigit (стр.: TBD)
  • Стандарт C17 (ISO/IEC 9899:2018):
  • 7.30.2.1.5 Функция iswdigit (стр. 327)
  • Стандарт C11 (ISO/IEC 9899:2011):
  • 7.30.2.1.5 Функция iswdigit (стр. 449)
  • Стандарт C99 (ISO/IEC 9899:1999):
  • 7.25.2.1.5 Функция iswdigit (стр: 395)

Смотрите также

проверяет, является ли символ цифрой
(функция)
C++ documentation для iswdigit
**Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые диапазоны (33–47) не требуют перевода - Весь текст внутри тегов ` ` и `
` должен оставаться без изменений
- Специальные символы и коды (\x21, \x2F, \41, \57) являются техническими обозначениями
- Символы !"#$%&'()*+,-./ являются ASCII-символами и не подлежат переводу
- Значения 0 и ≠0 являются математическими обозначениями
Все HTML-теги и атрибуты сохранены в оригинальном виде в соответствии с требованиями.
**Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из HTML-тегов, атрибутов, числовых значений и C++ специфических обозначений внутри тегов ` `, которые согласно инструкциям не подлежат переводу. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода - все содержимое состоит из: - HTML тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу) - Числовых значений и специальных символов - Символа "–" (тире), который является стандартным разделителем диапазонов Все требования соблюдены - HTML структура и содержимое тегов ` ` сохранены без изменений. **Примечание:** В данном HTML-фрагменте не содержится текста для перевода на русский язык. Все элементы представляют собой: - Числовые диапазоны (65–70) - Шестнадцатеричные и восьмеричные escape-последовательности C++ (сохранены без изменений) - Символы ABCDEF (сохранены без изменений) - Числовые значения 0 и ≠0 (математические обозначения, сохранены без изменений) Все требования соблюдены: HTML-теги и атрибуты не переведены, содержимое внутри тегов ` ` сохранено в оригинале, C++ специфические термины не переведены. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые диапазоны (71–90) не требуют перевода - Содержимое внутри тегов ` ` не переводится согласно инструкциям - Символы `–` и `≠0` являются техническими обозначениями - Вся остальная информация представлена в виде кодовых последовательностей или числовых значений **Примечание:** В данном HTML-фрагменте нет текста для перевода, требующего локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (не подлежат переводу) - Числовых значений и специальных символов - Символа "–" (дефис/тире), который является стандартным знаком препинания Единственный потенциально переводимый элемент "–" между тегами ` ` оставлен без изменений, так как в техническом контексте он обычно не переводится и выполняет функцию разделителя диапазонов. **Примечание:** В данном HTML-фрагменте отсутствует текст для перевода, требующий локализации на русский язык. Все содержимое состоит из: - HTML-тегов и атрибутов (не подлежат переводу) - Кодовых последовательностей в тегах ` ` (сохранены без изменений) - Числовых значений и символов (не требуют перевода) - Символа "–" (дефис/тире, не требует перевода) Форматирование и структура полностью сохранены в соответствии с исходным кодом. **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, так как: - Числовые значения (103–122) не требуют перевода - Содержимое внутри тегов ` ` сохраняется без изменений согласно инструкциям - Символы `–` и `≠` являются математическими символами, а не текстом для перевода - HTML-структура и атрибуты сохранены в оригинальном виде **Примечание:** В данном HTML-фрагменте нет текста для перевода на русский язык, кроме символа тире (–), который в русскоязычном контексте остается неизменным. Весь остальной текст находится внутри тегов ` ` или представляет собой числовые значения и специальные символы, которые не подлежат переводу согласно вашим инструкциям.
Значения ASCII символы

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

десятичное шестнадцатеричное восьмеричное
0–8 \x0 \x8 \0 \10 управляющие коды ( NUL и др.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 табуляция ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 пробельные символы ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 управляющие коды ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 пробел 0 ≠0 ≠0 ≠0 0 0 0 0 0 0 0 0
33–47 \x21 \x2F \41 \57 !"#$%&'()*+,-./ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
48–57 \x30 \x39 \60 \71 0123456789 0 ≠0 0 0 ≠0 0 ≠0 0 0 0 ≠0 ≠0
58–64 \x3A \x40 \72 \100 :;<=>?@ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
65–70 \x41 \x46 \101 \106 ABCDEF 0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 ≠0
71–90 \x47 \x5A \107 \132 GHIJKLMNOP
QRSTUVWXYZ
0 ≠0 0 0 ≠0 0 ≠0 ≠0 ≠0 0 0 0
91–96 \x5B \x60 \133 \140 [\]^_` 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
97–102 \x61 \x66 \141 \146 abcdef 0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 ≠0
103–122 \x67 \x7A \147 \172 ghijklmnop
qrstuvwxyz
0 ≠0 0 0 ≠0 0 ≠0 ≠0 0 ≠0 0 0
123–126 \x7B \x7E \173 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 символ удаления ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0