Процедуры is, iswis, isw Routines

КомментарииRemarks

Эти подпрограммы проверяют символы на соответствие заданным условиям.These routines test characters for specified conditions.

Подпрограммы is выдают значащий результат для любого целочисленного аргумента от –1 (EOF) до UCHAR_MAX (0xFF) включительно.The is routines produce meaningful results for any integer argument from -1 (EOF) to UCHAR_MAX (0xFF), inclusive. Ожидаемый тип аргумента — int .The expected argument type is int.

Внимание!

Для подпрограмм передача аргумента типа может привести к char непредсказуемым результатам.For the is routines, passing an argument of type char may yield unpredictable results. Однобайтовый символ типа char со значением, превышающим 0x7F, имеет отрицательное значение.An SBCS or MBCS single-byte character of type char with a value greater than 0x7F is negative. Если char передается, компилятор может преобразовать значение в signed int или signed long .If a char is passed, the compiler may convert the value to a signed int or a signed long. Компилятор может расширить знак данного значения, что приведет к непредвиденным результатам.This value may be sign-extended by the compiler, with unexpected results.

Подпрограммы isw выдают значащие результаты для любого целого числа от –1 (WEOF) до 0xFFFF включительно.The isw routines produce meaningful results for any integer value from - 1 (WEOF) to 0xFFFF, inclusive. Тип данных wint_t ОПРЕДЕЛЯЕТСЯ в WCHAR. H как a unsigned short ; он может содержать любой широкий символ или расширенное значение конца файла (WEOF).The wint_t data type is defined in WCHAR.H as an unsigned short; it can hold any wide character or the wide-character end-of-file (WEOF) value.

Выходное значение зависит от настройки категории LC_CTYPE языкового стандарта; дополнительные сведения см. в разделе setlocale.The output value is affected by the setting of the LC_CTYPE category setting of the locale; see setlocale for more information. Версии этих функций без суффикса _l используют текущий языковой стандарт для данного поведения, зависящего от языкового стандарта; версии с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта.The versions of these functions without the _l suffix use the current locale for this locale-dependent behavior; the versions with the _l suffix are identical except that they use the locale parameter passed in instead.

В языковом стандарте "C" для подпрограмм is определены следующие условия проверки:In the "C" locale, the test conditions for the is routines are as follows:

isalnum
Алфавитно-цифровые символы (A–Z, a–z или 0–9).Alphanumeric (A - Z, a - z, or 0 - 9).

isalpha
Алфавитные (A–Z или a–z).Alphabetic (A - Z or a - z).

__isascii
Символы ASCII (0x00–0x7F).ASCII character (0x00 - 0x7F).

isblank
Горизонтальная табуляция или пробел (0x09 или 0x20).Horizontal tab or space character (0x09 or 0x20).

iscntrl
Управляющий символ (0x00–0x1F или 0x7F).Control character (0x00 - 0x1F or 0x7F).

__iscsym
Буква, символ подчеркивания или цифра.Letter, underscore, or digit.

__iscsymf
Буква или символ подчеркивания.Letter or underscore.

isdigit
Десятичная цифра (0–9).Decimal digit (0 - 9).

isgraph
Печатные символы, кроме пробела ( ).Printable character except space ( ).

islower
Буквы нижнего регистра (a–z).Lowercase letter (a - z).

isprint
Печатные символы, включая пробел (0x20–0x7E).Printable character including space (0x20 - 0x7E).

ispunct
Знак препинания.Punctuation character.

isspace
Пробельный символ (0x09–0x0D или 0x20).White-space character (0x09 - 0x0D or 0x20).

isupper
Буквы верхнего регистра (A–Z).Uppercase letter (A - Z).

isxdigit
Шестнадцатеричная цифра (А–F, a–f или 0–9).Hexadecimal digit (A - F, a - f, or 0 - 9).

Для подпрограмм isw результаты проверки заданного условия не зависят от языкового стандарта.For the isw routines, the result of the test for the specified condition is independent of locale. Условия проверки для функций isw следующие:The test conditions for the isw functions are as follows:

iswalnum
iswalpha или iswdigit.iswalpha or iswdigit.

iswalpha
Любой расширенный символ из набора, определенного реализацией, для которого ни одна из функций iswcntrl, iswdigit, iswpunct и iswspace не принимает значение, отличное от нуля.Any wide character that is one of an implementation-defined set for which none of iswcntrl, iswdigit, iswpunct, or iswspace is nonzero. iswalpha возвращает ненулевое значение только для расширенных символов, для которых iswupper или iswlower имеет ненулевое значение.iswalpha returns nonzero only for wide characters for which iswupper or iswlower is nonzero.

iswascii
Представление символа ASCII (0x0000–0x007F) в расширенных символах.Wide-character representation of ASCII character (0x0000 - 0x007F).

iswblank
Расширенный символ, соответствующий стандартному пробелу или входящий в определяемый реализацией набор расширенных символов, для которых функция iswalnum имеет значение false.Wide character that corresponds to the standard space character or is one of an implementation-defined set of wide characters for which iswalnum is false. Стандартные пробельные символы — это пробел (L" ") и символ горизонтальной табуляции (L"\t").Standard blank characters are space (L' ') and horizontal tab (L'\t').

iswcntrl
Расширенный символ управления.Control wide character.

__iswcsym
Любой расширенный символ, для которого функция isalnum имеет значение true, или символ "".Any wide character for which isalnum is true, or the '' character.

__iswcsymf
Любой расширенный символ, для которого функция iswalpha имеет значение true, или символ "".Any wide character for which iswalpha is true, or the '' character.

iswctype
Символ имеет свойство, указанное аргументом desc.Character has property specified by the desc argument. Для каждого допустимого значения аргумента desc функции iswctype существует эквивалентная функция, работающая с расширенными символами, как показано в следующей таблице:For each valid value of the desc argument of iswctype, there is an equivalent wide-character classification routine, as shown in the following table:

Эквивалентность iswctype (c, desc) другим подпрограммам проверки iswEquivalence of iswctype(c, desc) to Other isw Testing Routines

Значение аргумента descValue of desc argument эквивалент iswctype(c, desc)iswctype( c, desc ) equivalent
_ALPHA_ALPHA исвалфа ( c )iswalpha( c )
_ALPHA | _DIGIT_ALPHA | _DIGIT iswalnum( c )iswalnum( c )
_BLANK_BLANK исвбланк ( c )iswblank( c )
_CONTROL_CONTROL iswcntrl( c )iswcntrl( c )
_DIGIT_DIGIT iswdigit( c )iswdigit( c )
_ALPHA | _DIGIT | _PUNCT_ALPHA | _DIGIT | _PUNCT исвграф ( c )iswgraph( c )
_LOWER_LOWER iswlower( c )iswlower( c )
_ALPHA | _BLANK | _DIGIT | _PUNCT_ALPHA | _BLANK | _DIGIT | _PUNCT исвпринт ( c )iswprint( c )
_PUNCT_PUNCT исвпункт ( c )iswpunct( c )
_BLANK_BLANK исвбланк ( c )iswblank( c )
_SPACE_SPACE iswspace( c )iswspace( c )
_UPPER_UPPER iswupper( c )iswupper( c )
_HEX_HEX исвксдигит ( c )iswxdigit( c )

iswdigit
Расширенный символ, соответствующий символу десятичной цифры.Wide character corresponding to a decimal-digit character.

iswgraph
Печатный расширенный символ, кроме расширенного символа пробела (L" ").Printable wide character except space wide character (L' ').

iswlower
Строчная буква или член определенного реализацией набора расширенных символов, для которых ни одна из функций iswcntrl, iswdigit, iswpunct и iswspace не имеет значения, отличного от нуля.Lowercase letter, or one of implementation-defined set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is nonzero. iswlower возвращает ненулевое значение только для расширенных символов, которые соответствуют буквам нижнего регистра.iswlower returns nonzero only for wide characters that correspond to lowercase letters.

iswprint
Печатный расширенный символ, включая расширенный символа пробела (L" ").Printable wide character, including space wide character (L' ').

iswpunct
Печатный расширенный символ, который не является ни расширенным символом пробела (L" "), ни расширенным символом, для которого значение функции iswalnum отлично от нуля.Printable wide character that is neither space wide character (L' ') nor wide character for which iswalnum is nonzero.

iswspace
Расширенный символ, соответствующий стандартному расширенному символу пробела или являющийся одним из определяемых реализацией расширенных символов, для которых функция iswalnum имеет значение false.Wide character that corresponds to standard white-space character or is one of implementation-defined set of wide characters for which iswalnum is false. Стандартные пробельные символы: пробел (L" "), символ перевода страницы (L"\f"), символ новой строки (L"\n"), символ возврата каретки (L"\r"), символ горизонтальной табуляции (L"\t"), символ вертикальной табуляции (L"\v").Standard white-space characters are: space (L' '), form feed (L'\f'), newline (L'\n'), carriage return (L'\r'), horizontal tab (L'\t'), and vertical tab (L'\v').

iswupper
Расширенный символ верхнего регистра или символ из набора определенных реализацией расширенных символов, для которых ни одна из функций iswcntrl, iswdigit, iswpunct и iswspace не имеет нулевого значения.Wide character that is uppercase or is one of an implementation-defined set of wide characters for which none of iswcntrl, iswdigit, iswpunct, or iswspace is nonzero. Функция iswupper возвращает ненулевое значение только для расширенных символов, которые соответствуют буквам верхнего регистра.iswupper returns nonzero only for wide characters that correspond to uppercase characters.

iswxdigit
Расширенный символ, который соответствует символу шестнадцатеричной цифры.Wide character that corresponds to a hexadecimal-digit character.

ПримерExample

// crt_isfam.c
/* This program tests all characters between 0x0
* and 0x7F, then displays each character with abbreviations
* for the character-type codes that apply.
*/

#include <stdio.h>
#include <ctype.h>

int main( void )
{
   int ch;
   for( ch = 0; ch <= 0x7F; ch++ )
   {
      printf( "%.2x  ", ch );
      printf( " %c", isprint( ch )  ? ch   : ' ' );
      printf( "%4s", isalnum( ch )  ? "AN" : "" );
      printf( "%3s", isalpha( ch )  ? "A"  : "" );
      printf( "%3s", __isascii( ch )  ? "AS" : "" );
      printf( "%3s", iscntrl( ch )  ? "C"  : "" );
      printf( "%3s", __iscsym( ch )  ? "CS "  : "" );
      printf( "%3s", __iscsymf( ch )  ? "CSF"  : "" );
      printf( "%3s", isdigit( ch )  ? "D"  : "" );
      printf( "%3s", isgraph( ch )  ? "G"  : "" );
      printf( "%3s", islower( ch )  ? "L"  : "" );
      printf( "%3s", ispunct( ch )  ? "PU" : "" );
      printf( "%3s", isspace( ch )  ? "S"  : "" );
      printf( "%3s", isprint( ch )  ? "PR" : "" );
      printf( "%3s", isupper( ch )  ? "U"  : "" );
      printf( "%3s", isxdigit( ch ) ? "X"  : "" );
      printf( ".\n" );
   }
}

ВыводOutput

00            AS  C                              .
01            AS  C                              .
02            AS  C                              .
03            AS  C                              .
04            AS  C                              .
05            AS  C                              .
06            AS  C                              .
07            AS  C                              .
08            AS  C                              .
09            AS  C                    S         .
0a            AS  C                    S         .
0b            AS  C                    S         .
0c            AS  C                    S         .
0d            AS  C                    S         .
0e            AS  C                              .
0f            AS  C                              .
10            AS  C                              .
11            AS  C                              .
12            AS  C                              .
13            AS  C                              .
14            AS  C                              .
15            AS  C                              .
16            AS  C                              .
17            AS  C                              .
18            AS  C                              .
19            AS  C                              .
1a            AS  C                              .
1b            AS  C                              .
1c            AS  C                              .
1d            AS  C                              .
1e            AS  C                              .
1f            AS  C                              .
20            AS                       S PR      .
21   !        AS              G    PU    PR      .
22   "        AS              G    PU    PR      .
23   #        AS              G    PU    PR      .
24   $        AS              G    PU    PR      .
25   %        AS              G    PU    PR      .
26   &        AS              G    PU    PR      .
27   '        AS              G    PU    PR      .
28   (        AS              G    PU    PR      .
29   )        AS              G    PU    PR      .
2a   *        AS              G    PU    PR      .
2b   +        AS              G    PU    PR      .
2c   ,        AS              G    PU    PR      .
2d   -        AS              G    PU    PR      .
2e   .        AS              G    PU    PR      .
2f   /        AS              G    PU    PR      .
30   0  AN    AS   CS      D  G          PR     X.
31   1  AN    AS   CS      D  G          PR     X.
32   2  AN    AS   CS      D  G          PR     X.
33   3  AN    AS   CS      D  G          PR     X.
34   4  AN    AS   CS      D  G          PR     X.
35   5  AN    AS   CS      D  G          PR     X.
36   6  AN    AS   CS      D  G          PR     X.
37   7  AN    AS   CS      D  G          PR     X.
38   8  AN    AS   CS      D  G          PR     X.
39   9  AN    AS   CS      D  G          PR     X.
3a   :        AS              G    PU    PR      .
3b   ;        AS              G    PU    PR      .
3c   <        AS              G    PU    PR      .
3d   =        AS              G    PU    PR      .
3e   >        AS              G    PU    PR      .
3f   ?        AS              G    PU    PR      .
40   @        AS              G    PU    PR      .
41   A  AN  A AS   CS CSF     G          PR  U  X.
42   B  AN  A AS   CS CSF     G          PR  U  X.
43   C  AN  A AS   CS CSF     G          PR  U  X.
44   D  AN  A AS   CS CSF     G          PR  U  X.
45   E  AN  A AS   CS CSF     G          PR  U  X.
46   F  AN  A AS   CS CSF     G          PR  U  X.
47   G  AN  A AS   CS CSF     G          PR  U   .
48   H  AN  A AS   CS CSF     G          PR  U   .
49   I  AN  A AS   CS CSF     G          PR  U   .
4a   J  AN  A AS   CS CSF     G          PR  U   .
4b   K  AN  A AS   CS CSF     G          PR  U   .
4c   L  AN  A AS   CS CSF     G          PR  U   .
4d   M  AN  A AS   CS CSF     G          PR  U   .
4e   N  AN  A AS   CS CSF     G          PR  U   .
4f   O  AN  A AS   CS CSF     G          PR  U   .
50   P  AN  A AS   CS CSF     G          PR  U   .
51   Q  AN  A AS   CS CSF     G          PR  U   .
52   R  AN  A AS   CS CSF     G          PR  U   .
53   S  AN  A AS   CS CSF     G          PR  U   .
54   T  AN  A AS   CS CSF     G          PR  U   .
55   U  AN  A AS   CS CSF     G          PR  U   .
56   V  AN  A AS   CS CSF     G          PR  U   .
57   W  AN  A AS   CS CSF     G          PR  U   .
58   X  AN  A AS   CS CSF     G          PR  U   .
59   Y  AN  A AS   CS CSF     G          PR  U   .
5a   Z  AN  A AS   CS CSF     G          PR  U   .
5b   [        AS              G    PU    PR      .
5c   \        AS              G    PU    PR      .
5d   ]        AS              G    PU    PR      .
5e   ^        AS              G    PU    PR      .
5f   _        AS   CS CSF     G    PU    PR      .
60   `        AS              G    PU    PR      .
61   a  AN  A AS   CS CSF     G  L       PR     X.
62   b  AN  A AS   CS CSF     G  L       PR     X.
63   c  AN  A AS   CS CSF     G  L       PR     X.
64   d  AN  A AS   CS CSF     G  L       PR     X.
65   e  AN  A AS   CS CSF     G  L       PR     X.
66   f  AN  A AS   CS CSF     G  L       PR     X.
67   g  AN  A AS   CS CSF     G  L       PR      .
68   h  AN  A AS   CS CSF     G  L       PR      .
69   i  AN  A AS   CS CSF     G  L       PR      .
6a   j  AN  A AS   CS CSF     G  L       PR      .
6b   k  AN  A AS   CS CSF     G  L       PR      .
6c   l  AN  A AS   CS CSF     G  L       PR      .
6d   m  AN  A AS   CS CSF     G  L       PR      .
6e   n  AN  A AS   CS CSF     G  L       PR      .
6f   o  AN  A AS   CS CSF     G  L       PR      .
70   p  AN  A AS   CS CSF     G  L       PR      .
71   q  AN  A AS   CS CSF     G  L       PR      .
72   r  AN  A AS   CS CSF     G  L       PR      .
73   s  AN  A AS   CS CSF     G  L       PR      .
74   t  AN  A AS   CS CSF     G  L       PR      .
75   u  AN  A AS   CS CSF     G  L       PR      .
76   v  AN  A AS   CS CSF     G  L       PR      .
77   w  AN  A AS   CS CSF     G  L       PR      .
78   x  AN  A AS   CS CSF     G  L       PR      .
79   y  AN  A AS   CS CSF     G  L       PR      .
7a   z  AN  A AS   CS CSF     G  L       PR      .
7b   {        AS              G    PU    PR      .
7c   |        AS              G    PU    PR      .
7d   }        AS              G    PU    PR      .
7e   ~        AS              G    PU    PR      .
7f            AS  C                              .

См. такжеSee also

Классификация символовCharacter Classification
ЛокальLocale
setlocale, _wsetlocalesetlocale, _wsetlocale
Интерпретация последовательностей Multibyte-CharacterInterpretation of Multibyte-Character Sequences
в функцииto Functions