Namespaces
Variants

isupper

From cppreference.net
< c ‎ | string ‎ | byte
Definido en el encabezado <ctype.h>
int isupper ( int ch ) ;

Comprueba si el carácter dado es un carácter en mayúscula según la configuración regional actual de C. En la configuración regional predeterminada "C", isupper devuelve verdadero solo para las letras mayúsculas ( ABCDEFGHIJKLMNOPQRSTUVWXYZ ).

Si isupper devuelve true , se garantiza que iscntrl , isdigit , ispunct , y isspace devuelven false para el mismo carácter en la misma configuración regional de C.

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 una letra mayúscula, cero en caso contrario.

Ejemplo

#include <ctype.h>
#include <locale.h>
#include <stdio.h>
int main(void)
{
    unsigned char c = '\xc6'; // letter Æ in ISO-8859-1
    printf("In the default C locale, \\xc6 is %suppercase\n",
           isupper(c) ? "" : "not " );
    setlocale(LC_ALL, "en_GB.iso88591");
    printf("In ISO-8859-1 locale, \\xc6 is %suppercase\n",
           isupper(c) ? "" : "not " );
}

Salida posible:

In the default C locale, \xc6 is not uppercase
In ISO-8859-1 locale, \xc6 is uppercase

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.4.1.11 La función isupper (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.4.1.11 La función isupper (p: 147)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.4.1.11 La función isupper (p: 203)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.4.1.11 La función isupper (p: 184)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.3.1.10 La función isupper

Véase también

comprueba si un carácter ancho es un carácter en mayúscula
(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 \173 \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