Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

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

NAME
       std::isalpha - std::isalpha

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

	  Checks  if the given character is an alphabetic character as classi-
       fied by the
	  currently installed C	locale.	In the default locale,	the  following
       characters are
	  alphabetic:

	    * uppercase	letters	ABCDEFGHIJKLMNOPQRSTUVWXYZ
	    * lowercase	letters	abcdefghijklmnopqrstuvwxyz

	  In  locales  other  than "C",	an alphabetic character	is a character
       for which
	  std::isupper() or std::islower() returns non-zero or any other char-
       acter considered
	  alphabetic by	the locale.  In	 any  case,  std::iscntrl(),  std::is-
       digit(),
	  std::ispunct()  and std::isspace() will return zero for this charac-
       ter.

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

Parameters
	  ch - character to classify

Return value
	  Non-zero value if the	character is  an  alphabetic  character,  zero
       otherwise.

Notes
	  Like all other functions from	<cctype>, the behavior of std::isalpha
       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_isalpha(char ch)
	{
	    return std::isalpha(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_alphas(const std::string& s)
	{
	    return std::count_if(s.begin(), s.end(),
			      //	static_cast<int(*)(int)>(std::isalpha)
       // wrong
			      //   [](int   c){	  return   std::isalpha(c);  }
       // wrong
			      //  [](char  c){	 return	  std::isalpha(c);   }
       // wrong
				 [](unsigned  char c){ return std::isalpha(c);
       } // correct
				);
	}

Example
	  Demonstrates the use of isalpha() with  different  locales  (OS-spe-
       cific).

       // Run this code

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

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

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

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

	}

Output:
	isalpha('\xdf',	default	C locale) returned false
	isalpha('\xdf',	ISO-8859-1 locale) returned true

See also
	  isalpha(std::locale)	checks	if a character is classified as	alpha-
       betic by	a locale
			       (function template)
	  iswalpha	       checks if a wide	character is alphabetic
			       (function)

		 ASCII values		   characters	 iscntrl  isprint  is-
       space  isblank  isgraph	ispunct	 isalnum   isalpha   isupper   islower
       isdigit	isxdigit
	decimal	  hexadecimal	  octal			    iswcntrl  iswprint
       iswspace	iswblank iswgraph iswpunct iswalnum iswalpha iswupper iswlower
       iswdigit	iswxdigit 08	 \x0\x8	  \0\10	   control  codes     0	     0
       0	 0	   0	     0	       0	 0	   0	     0
       0	0
					 (NUL,	  etc.)	     9		   \x9
       \11	    tab	 (\t)	       0     0	       0      0	    0	     0
       0	0	 0	  0	   0	    0
					 whitespaces  1013    \xA\xD	\12\15
       (\n,  \v,  \f,	   0	  0	    0	  0	   0	    0	     0
       0	0	 0	  0	   0
					 \r) 1431   \xE\x1F  \16\37    control
       codes	 0     0	0	 0	  0	   0	    0	     0
       0	0	 0	  0 32	       \x20	    \40		 space
       0	  0	  0	  0	 0	  0	   0	    0	     0
       0	 0	   0  3347    \x21\x2F	\41\57	   !"#$%&'()*+,-./   0
       0      0		0	   0	   0	  0	   0	    0	     0
       0	0 4857	 \x30\x39 \60\71   0123456789	   0	      0	     0
       0	  0	 0	    0	  0	   0	    0	      0	     0
       5864   \x3A\x40 \72\100	:;<=>?@		 0	    0	   0	     0
       0       0      0		0	  0	    0	      0		0 6570
       \x41\x46	\101\106 ABCDEF		 0	   0	 0	  0	     0
       0	  0	  0	  0	 0	   0	     0 7190   \x47\x5A
       \107\132	GHIJKLMNOP	0	  0	 0	   0	      0	     0
       0      0	     0	   0	    0	     0
					 QRSTUVWXYZ  9196    \x5B\x60 \133\140
       [\]^_`	       0	  0	 0	   0	      0	      0	     0
       0	 0	   0	    0	     0 97102  \x61\x66 \141\146	abcdef
       0	 0     0	 0	    0	   0	      0	      0	     0
       0      0		0 103122 \x67\x7A \147\172 ghijklmnop	   0	     0
       0	0	  0	 0	    0	    0	   0	      0	     0
       0
					 qrstuvwxyz  123126  \x7B\x7E \172\176
       {|}~	       0	  0	 0	   0	      0	      0	     0
       0	 0	   0	     0	       0  127	     \x7F	  \177
       backspace	0     0	       0	0	 0	   0	     0
       0	0	 0	  0	   0
					 character (DEL)

http://cppreference.com		  2022.07.31		       std::isalpha(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::isalpha&sektion=3&manpath=FreeBSD+Ports+15.0>

home | help