home | help
std::isxdigit(3)	       C++ Standard Libary		std::isxdigit(3)

NAME
     std::isxdigit - std::isxdigit

Synopsis
	Defined in header <cctype>
	int isxdigit( int ch );

	Checks if the given character is a hexadecimal numeric character
	(0123456789abcdefABCDEF).

	The behavior is undefined if the value of ch is not representable as un-
     signed char
	and is not equal to EOF.

Parameters
	ch - character to classify

Return value
	Non-zero value if the character is a hexadecimal numeric character, zero
     otherwise.

Notes
	std::isdigit  and  std::isxdigit  are the only standard narrow character
     classification
	functions that are not affected by the currently installed C locale. al-
     though some
	implementations (e.g. Microsoft in 1252  codepage)  may  classify  addi-
     tional
	single-byte characters as digits.

	Like all other functions from <cctype>, the behavior of std::isxdigit is
     undefined
	if  the  argument's  value is neither representable as unsigned char nor
     equal to EOF.
	To use these functions safely with plain chars (or  signed  chars),  the
     argument
	should first be converted to unsigned char:

      bool my_isxdigit(char ch)
      {
	  return std::isxdigit(static_cast<unsigned char>(ch));
      }

	Similarly,  they  should  not  be directly used with standard algorithms
     when the
	iterator's value type is char or signed char. Instead, convert the value
     to unsigned
	char first:

      int count_xdigits(const std::string& s)
      {
	  return std::count_if(s.begin(), s.end(),
			    //		 static_cast<int(*)(int)>(std::isxdigit)
     // wrong
			    //	  [](int    c){   return   std::isxdigit(c);   }
     // wrong
			    //	 [](char   c){	 return   std::isxdigit(c);    }
     // wrong
			       [](unsigned  char  c){ return std::isxdigit(c); }
     // correct
			      );
      }

Example
     // Run this code

      #include <cctype>
      #include <climits>
      #include <iostream>

      int main()
      {
	  for (int c = 0; UCHAR_MAX >= c; ++c)
	      if (isxdigit(c))
		  std::cout << static_cast<char>(c);
	  std::cout << '\n';
      }

Output:
      0123456789ABCDEFabcdef

See also
			      checks if a character is classified as a hexadeci-
     mal digit by
	isxdigit(std::locale) a locale
			      (function template)
	iswxdigit	      checks if a wide character is a hexadecimal  char-
     acter
			      (function)
	C documentation for
	isxdigit

	     ASCII  values	       characters     iscntrl	isprint  isspace
     isblank  isgraph  ispunct	 isalnum   isalpha   isupper   islower	 isdigit
     isxdigit  decimal	hexadecimal    octal		       iswcntrl iswprint
     iswspace iswblank iswgraph iswpunct  iswalnum  iswalpha  iswupper	iswlower
     iswdigit  iswxdigit  0a8	   \x0a\x8	\0a\10	   control  codes    a 0
     0	      0        0	0	 0	  0	   0	     0	       0
     0	      0
				   (NUL,    etc.)    9	       \x9	     \11
     tab (\t)	     a 0       0	a 0	  a 0	    0	     0	       0
     0	      0        0	0	 0
				   whitespaces	 10a13	   \xAa\xD	 \12a\15
     (\n, \v, \f,    a 0       0	a 0	  0	   0	     0	       0
     0	      0        0	0	 0
				   \r)	14a31	 \xEa\x1F     \16a\37	 control
     codes   a 0       0	0	 0	  0	   0	     0	       0
     0		0	   0	      0   32	   \x20 	\40	   space
     0	      a 0	 a  0	     a	0	 0	   0	     0	       0
     0	       0	0	 0 33a47   \x21a\x2F   \41a\57	 !"#$%&'()*+,-./
     0	      a 0	 0	   0	     a	0	 a  0	     0	       0
     0	       0	 0	   0  48a57    \x30a\x39    \60a\71   0123456789
     0	      a 0	 0	   0	     a	0	 0	   a  0        0
     0	       0	 a  0	     a	0  58a64   \x3Aa\x40   \72a\100  :;<=>?@
     0	      a 0	 0	   0	     a	0	 a  0	     0	       0
     0		0	   0	      0  65a70	  \x41a\x46    \101a\106  ABCDEF
     0	      a 0	0	 0	  a  0	      0 	a  0	    a  0
     a	0	 0	   0	    a 0 71a90	\x47a\x5A   \107a\132 GHIJKLMNOP
     0	      a 0	0	 0	  a  0	      0 	a  0	    a  0
     a 0       0	0	 0
				   QRSTUVWXYZ	91a96	  \x5Ba\x60    \133a\140
     [\]^_`	     0	      a 0	0	 0	  a 0	    a 0        0
     0	       0	0	 0	  0 97a102  \x61a\x66	\141a\146 abcdef
     0	      a 0	0	 0	  a  0	      0 	a  0	    a  0
     0	       a  0	   0	    a 0 103a122 \x67a\x7A   \147a\172 ghijklmnop
     0	      a 0	0	 0	  a  0	      0 	a  0	    a  0
     0	      a 0	0	 0
				   qrstuvwxyz 123a126 \x7Ba\x7E   \172a\176 {|}~
     0	       a  0	   0	     0	       a  0	   a  0       0        0
     0	       0	 0	   0  127      \x7F	    \177       backspace
     a	0	0	 0	  0	   0	    0	     0	      0        0
     0	      0        0
				   character (DEL)

http://cppreference.com 	   2024.06.10			std::isxdigit(3)

home | help