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

NAME
     std::isupper - std::isupper

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

	Checks if the given character is an uppercase character as classified by
     the
	currently  installed  C  locale. In the default "C" locale, std::isupper
     returns a
	nonzero value only for	the  uppercase	letters  (ABCDEFGHIJKLMNOPQRSTU-
     VWXYZ).

	If std::isupper returns a nonzero value, it is guaranteed that std::isc-
     ntrl,
	std::isdigit,  std::ispunct,  and  std::isspace return zero for the same
     character in
	the same C locale.

	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 an uppercase letter, zero otherwise.

Notes
	Like all other functions from <cctype>, the behavior of std::isupper  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 argu-
     ment should
	first be converted to unsigned char:

      bool my_isupper(char ch)
      {
	  return std::isupper(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_uppers(const std::string& s)
      {
	  return std::count_if(s.begin(), s.end(),
			    // static_cast<int(*)(int)>(std::isupper)	      //
     wrong
			    // [](int c){ return std::isupper(c); }	      //
     wrong
			    // [](char c){ return std::isupper(c); }	      //
     wrong
			       [](unsigned char c){ return std::isupper(c); } //
     correct
			      );
      }

Example
     // Run this code

      #include <cctype>
      #include <clocale>
      #include <iostream>

      int main()
      {
	  unsigned char c = '\xc6'; // letter A in ISO-8859-1

	  std::cout << "isupper(\'\\xc6\', default C locale) returned "
		    << std::boolalpha << (bool)std::isupper(c) << '\n';

	  std::setlocale(LC_ALL, "en_GB.iso88591");
	  std::cout << "isupper(\'\\xc6\', ISO-8859-1 locale) returned "
		    << std::boolalpha << (bool)std::isupper(c) << '\n';

      }

Possible output:
      isupper('\xc6', default C locale) returned false
      isupper('\xc6', ISO-8859-1 locale) returned true

See also
	isupper(std::locale) checks if a character is classified as uppercase by
     a locale
			     (function template)
	iswupper	     checks if a wide character is an uppercase  charac-
     ter
			     (function)
	C documentation for
	isupper

	     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::isupper(3)

home | help