Namespaces
Variants

std:: isalpha

From cppreference.net
Definido en el encabezado <cctype>
int isalpha ( int ch ) ;

Comprueba si el carácter dado es un carácter alfabético según la clasificación de la configuración regional C actualmente instalada. En la configuración regional predeterminada, los siguientes caracteres son alfabéticos:

  • letras mayúsculas ABCDEFGHIJKLMNOPQRSTUVWXYZ
  • letras minúsculas abcdefghijklmnopqrstuvwxyz

En configuraciones regionales distintas a "C" , un carácter alfabético es aquel para el cual std::isupper() o std::islower() devuelven un valor distinto de cero, o cualquier otro carácter considerado alfabético por la configuración regional. En cualquier caso, std::iscntrl() , std::isdigit() , std::ispunct() y std::isspace() devolverán cero para este carácter.

El comportamiento no está definido si el valor de ch no es representable como unsigned char y no es igual a EOF .

Contenidos

Parámetros

ch - carácter a clasificar

Valor de retorno

Valor distinto de cero si el carácter es un carácter alfabético, cero en caso contrario.

Notas

Como todas las demás funciones de <cctype> , el comportamiento de std::isalpha es indefinido si el valor del argumento no es representable como unsigned char ni igual a EOF . Para usar estas funciones de forma segura con char simples (o signed char s), el argumento debe convertirse primero a unsigned char :

bool my_isalpha(char ch)
{
    return std::isalpha(static_cast<unsigned char>(ch));
}

Del mismo modo, no deben usarse directamente con algoritmos estándar cuando el tipo de valor del iterador es char o signed char . En su lugar, convierta primero el valor a unsigned char :

int count_alphas(const std::string& s)
{
    return std::count_if(s.begin(), s.end(),
                      // static_cast<int(*)(int)>(std::isalpha)         // incorrecto
                      // [](int c){ return std::isalpha(c); }           // incorrecto
                      // [](char c){ return std::isalpha(c); }          // incorrecto
                         [](unsigned char c){ return std::isalpha(c); } // correcto
                        );
}

Ejemplo

Demuestra el uso de std::isalpha con diferentes configuraciones regionales (específicas del SO).

#include <cctype>
#include <clocale>
#include <iostream>
int main()
{
    unsigned char c = '\xdf'; // German letter ß in ISO-8859-1
    std::cout << "isalpha(\'\\xdf\', default C locale) returned "
              << std::boolalpha << !!std::isalpha(c) << '\n';
    std::setlocale(LC_ALL, "de_DE.iso88591");
    std::cout << "isalpha(\'\\xdf\', ISO-8859-1 locale) returned "
              << static_cast<bool>(std::isalpha(c)) << '\n';
}

Salida posible:

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

Véase también

verifica si un carácter está clasificado como alfabético según una configuración regional
(plantilla de función)
verifica si un carácter ancho es alfabético
(función)
Valores ASCII caracteres

iscntrl
iswcntrl

isprint
iswprint

isspace
iswspace

isblank
iswblank

isgraph
iswgraph

ispunct
iswpunct

isalnum
iswalnum

isalpha
iswalpha

isupper
iswupper

islower
iswlower

isdigit
iswdigit

isxdigit
iswxdigit

decimal hexadecimal octal
0–8 \x0 \x8 \0 \10 códigos de control ( NUL , etc.) ≠0 0 0 0 0 0 0 0 0 0 0 0
9 \x9 \11 tabulación ( \t ) ≠0 0 ≠0 ≠0 0 0 0 0 0 0 0 0
10–13 \xA \xD \12 \15 espacios en blanco ( \n , \v , \f , \r ) ≠0 0 ≠0 0 0 0 0 0 0 0 0 0
14–31 \xE \x1F \16 \37 códigos de control ≠0 0 0 0 0 0 0 0 0 0 0 0
32 \x20 \40 espacio 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 \172 \176 {|}~ 0 ≠0 0 0 ≠0 ≠0 0 0 0 0 0 0
127 \x7F \177 carácter de retroceso ( DEL ) ≠0 0 0 0 0 0 0 0 0 0 0 0