Compartir a través de


funciones<locale>

has_facet
isalnum
isalpha
iscntrl
isdigit
isgraph
islower
isprint
ispunct
isspace
isupper
isxdigit
tolower
toupper
use_facet

has_facet

Comprueba si una faceta determinada se almacena en una configuración regional especificada.

template <class Facet>
bool has_facet(const locale& Loc);

Parámetros

Loc
Configuración regional en la que se va a comprobar la presencia de una faceta.

Valor devuelto

true si la configuración regional tiene la faceta que se busca; si no es así, false.

Comentarios

La función de plantilla es útil para comprobar si se enumeran facetas no obligatorias en una configuración regional antes de llamar a use_facet para evitar la excepción que se produciría si no estuvieran presentes.

Ejemplo

// locale_has_facet.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result = has_facet <ctype<char> > ( loc );
   cout << result << endl;
}
1

isalnum

Comprueba si un elemento de una configuración regional es un carácter alfabético o numérico.

template <class CharType>
bool isalnum(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento alfanumérico que se va a probar.

Loc
Configuración regional que contiene el elemento alfanumérico que se va a probar.

Valor devuelto

true si el elemento probado es alfanumérico; si no es así, false.

Ejemplo

// locale_isalnum.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isalnum ( 'L', loc);
   bool result2 = isalnum ( '@', loc);
   bool result3 = isalnum ( '3', loc);

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "alphanumeric." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not alphanumeric." << endl;

   if ( result2 )
      cout << "The character '@' in the locale is "
           << "alphanumeric." << endl;
   else
      cout << "The character '@' in the locale is "
           << " not alphanumeric." << endl;

   if ( result3 )
      cout << "The character '3' in the locale is "
           << "alphanumeric." << endl;
   else
      cout << "The character '3' in the locale is "
           << " not alphanumeric." << endl;
}
The character 'L' in the locale is alphanumeric.
The character '@' in the locale is  not alphanumeric.
The character '3' in the locale is alphanumeric.

isalpha

Comprueba si un elemento de una configuración regional es un carácter alfabético.

template <class CharType>
bool isalpha(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento alfabético que se va a probar.

Valor devuelto

true si el elemento probado es alfabético; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: alpha, Ch).

Ejemplo

// locale_isalpha.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isalpha ( 'L', loc);
   bool result2 = isalpha ( '@', loc);
   bool result3 = isalpha ( '3', loc);

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "alphabetic." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not alphabetic." << endl;

   if ( result2 )
      cout << "The character '@' in the locale is "
           << "alphabetic." << endl;
   else
      cout << "The character '@' in the locale is "
           << " not alphabetic." << endl;

   if ( result3 )
      cout << "The character '3' in the locale is "
           << "alphabetic." << endl;
   else
      cout << "The character '3' in the locale is "
           << " not alphabetic." << endl;
}

iscntrl

Comprueba si un elemento de una configuración regional es un carácter de control.

template <class CharType>
bool iscntrl(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter de control; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: cntrl, Ch).

Ejemplo

// locale_iscntrl.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = iscntrl ( 'L', loc );
   bool result2 = iscntrl ( '\n', loc );
   bool result3 = iscntrl ( '\t', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a control character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a control character." << endl;

   if ( result2 )
      cout << "The character-set 'backslash-n' in the locale\n is "
           << "a control character." << endl;
   else
      cout << "The character-set 'backslash-n' in the locale\n is "
           << " not a control character." << endl;

   if ( result3 )
      cout << "The character-set 'backslash-t' in the locale\n is "
           << "a control character." << endl;
   else
      cout << "The character-set 'backslash-n' in the locale \n is "
           << " not a control character." << endl;
}

isdigit

Comprueba si un elemento de una configuración regional es un carácter numérico.

template <class CharType>
bool isdigit(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter numérico; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: digit, Ch).

Ejemplo

// locale_is_digit.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isdigit ( 'L', loc );
   bool result2 = isdigit ( '@', loc );
   bool result3 = isdigit ( '3', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a numeric character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a numeric character." << endl;

   if ( result2 )
      cout << "The character '@' in the locale is "
           << "a numeric character." << endl;
   else
      cout << "The character '@' in the locale is "
           << " not a numeric character." << endl;

   if ( result3 )
      cout << "The character '3' in the locale is "
           << "a numeric character." << endl;
   else
      cout << "The character '3' in the locale is "
           << " not a numeric character." << endl;
}

isgraph

Comprueba si un elemento de una configuración regional es un carácter alfabético o un signo de puntuación.

template <class CharType>
bool isgraph(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter alfanumérico o de puntuación; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: graph, Ch).

Ejemplo

// locale_is_graph.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isgraph ( 'L', loc );
   bool result2 = isgraph ( '\t', loc );
   bool result3 = isgraph ( '.', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is\n "
           << "an alphanumeric or punctuation character." << endl;
   else
      cout << "The character 'L' in the locale is\n "
           << " not an alphanumeric or punctuation character." << endl;

   if ( result2 )
      cout << "The character 'backslash-t' in the locale is\n "
           << "an alphanumeric or punctuation character." << endl;
   else
      cout << "The character 'backslash-t' in the locale is\n "
           << "not an alphanumeric or punctuation character." << endl;

   if ( result3 )
      cout << "The character '.' in the locale is\n "
           << "an alphanumeric or punctuation character." << endl;
   else
      cout << "The character '.' in the locale is\n "
           << " not an alphanumeric or punctuation character." << endl;
}

islower

Comprueba si un elemento de una configuración regional está en minúsculas.

template <class CharType>
bool islower(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter en minúscula; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: lower, Ch).

Ejemplo

// locale_islower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = islower ( 'L', loc );
   bool result2 = islower ( 'n', loc );
   bool result3 = islower ( '3', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a lowercase character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a lowercase character." << endl;

   if ( result2 )
      cout << "The character 'n' in the locale is "
           << "a lowercase character." << endl;
   else
      cout << "The character 'n' in the locale is "
           << " not a lowercase character." << endl;

   if ( result3 )
      cout << "The character '3' in the locale is "
           << "a lowercase character." << endl;
   else
      cout << "The character '3' in the locale is "
           << " not a lowercase character." << endl;
}

isprint

Comprueba si un elemento de una configuración regional es un carácter imprimible.

template <class CharType>
bool isprint(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter imprimible; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: print, Ch).

Ejemplo

// locale_isprint.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc ( "German_Germany" );

   bool result1 = isprint ( 'L', loc );
   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a printable character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a printable character." << endl;

   bool result2 = isprint( '\t', loc );
   if ( result2 )
      cout << "The character 'backslash-t' in the locale is "
           << "a printable character." << endl;
   else
      cout << "The character 'backslash-t' in the locale is "
           << " not a printable character." << endl;

   bool result3 = isprint( '\n', loc );
   if ( result3 )
      cout << "The character 'backslash-n' in the locale is "
           << "a printable character." << endl;
   else
      cout << "The character 'backslash-n' in the locale is "
           << " not a printable character." << endl;
}

ispunct

Comprueba si un elemento de una configuración regional es un carácter de signo de puntuación.

template <class CharType>
bool ispunct(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter de puntuación; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: punct, Ch).

Ejemplo

// locale_ispunct.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = ispunct ( 'L', loc );
   bool result2 = ispunct ( ';', loc );
   bool result3 = ispunct ( '*', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a punctuation character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a punctuation character." << endl;

   if ( result2 )
      cout << "The character ';' in the locale is "
           << "a punctuation character." << endl;
   else
      cout << "The character ';' in the locale is "
           << " not a punctuation character." << endl;

   if ( result3 )
      cout << "The character '*' in the locale is "
           << "a punctuation character." << endl;
   else
      cout << "The character '*' in the locale is "
           << " not a punctuation character." << endl;
}

isspace

Comprueba si un elemento de una configuración regional es un carácter de espacio en blanco.

template <class CharType>
bool isspace(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter de espacio en blanco; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: space, Ch).

Ejemplo

// locale_isspace.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isspace ( 'L', loc );
   bool result2 = isspace ( '\n', loc );
   bool result3 = isspace ( ' ', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a whitespace character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a whitespace character." << endl;

   if ( result2 )
      cout << "The character 'backslash-n' in the locale is "
           << "a whitespace character." << endl;
   else
      cout << "The character 'backslash-n' in the locale is "
           << " not a whitespace character." << endl;

   if ( result3 )
      cout << "The character ' ' in the locale is "
           << "a whitespace character." << endl;
   else
      cout << "The character ' ' in the locale is "
           << " not a whitespace character." << endl;
}

isupper

Comprueba si un elemento de una configuración regional está en mayúsculas.

template <class CharType>
bool isupper(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter en mayúscula; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: upper, Ch).

Ejemplo

// locale_isupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isupper ( 'L', loc );
   bool result2 = isupper ( 'n', loc );
   bool result3 = isupper ( '3', loc );

   if ( result1 )
      cout << "The character 'L' in the locale is "
           << "a uppercase character." << endl;
   else
      cout << "The character 'L' in the locale is "
           << " not a uppercase character." << endl;

   if ( result2 )
      cout << "The character 'n' in the locale is "
           << "a uppercase character." << endl;
   else
      cout << "The character 'n' in the locale is "
           << " not a uppercase character." << endl;

   if ( result3 )
      cout << "The character '3' in the locale is "
           << "a uppercase character." << endl;
   else
      cout << "The character '3' in the locale is "
           << " not a uppercase character." << endl;
}

isxdigit

Comprueba si un elemento de una configuración regional es un carácter usado para representar un número hexadecimal.

template <class CharType>
bool isxdigit(CharType Ch, const locale& Loc)

Parámetros

Ch
Elemento que se va a probar.

Loc
Configuración regional que contiene el elemento que se va a probar.

Valor devuelto

true si el elemento probado es un carácter que se usa para representar un número hexadecimal; si no es así, false.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). is(ctype<CharType>:: xdigit, Ch).

Los dígitos hexadecimales usan la base 16 para representar números, con los números del 0 al 9 y las letras de la A a la F sin distinción entre mayúsculas y minúsculas para representar los números decimales del 0 al 15.

Ejemplo

// locale_isxdigit.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>

using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   bool result1 = isxdigit ( '5', loc );
   bool result2 = isxdigit ( 'd', loc );
   bool result3 = isxdigit ( 'q', loc );

   if ( result1 )
      cout << "The character '5' in the locale is "
           << "a hexidecimal digit-character." << endl;
   else
      cout << "The character '5' in the locale is "
           << " not a hexidecimal digit-character." << endl;

   if ( result2 )
      cout << "The character 'd' in the locale is "
           << "a hexidecimal digit-character." << endl;
   else
      cout << "The character 'd' in the locale is "
           << " not a hexidecimal digit-character." << endl;

   if ( result3 )
      cout << "The character 'q' in the locale is "
           << "a hexidecimal digit-character." << endl;
   else
      cout << "The character 'q' in the locale is "
           << " not a hexidecimal digit-character." << endl;
}

tolower

Pasa un carácter a minúsculas.

template <class CharType>
CharType tolower(CharType Ch, const locale& Loc)

Parámetros

Ch
El carácter que se va a convertir en minúscula.

Loc
Configuración regional que contiene el carácter que se va a convertir.

Valor devuelto

Carácter convertido en minúscula.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). tolower( Ch).

Ejemplo

// locale_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   char result1 = tolower ( 'H', loc );
   cout << "The lower case of 'H' in the locale is: "
        << result1 << "." << endl;
   char result2 = tolower ( 'h', loc );
   cout << "The lower case of 'h' in the locale is: "
        << result2 << "." << endl;
   char result3 = tolower ( '$', loc );
   cout << "The lower case of '$' in the locale is: "
        << result3 << "." << endl;
}

toupper

Pasa un carácter a mayúsculas.

template <class CharType>
CharType toupper(CharType Ch, const locale& Loc)

Parámetros

Ch
El carácter que se va a convertir en mayúscula.

Loc
Configuración regional que contiene el carácter que se va a convertir.

Valor devuelto

Carácter convertido en mayúscula.

Comentarios

La función de plantilla devuelve use_facet<ctype<CharType>>(Loc). toupper( Ch).

Ejemplo

// locale_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc ( "German_Germany" );
   char result1 = toupper ( 'h', loc );
   cout << "The upper case of 'h' in the locale is: "
        << result1 << "." << endl;
   char result2 = toupper ( 'H', loc );
   cout << "The upper case of 'H' in the locale is: "
        << result2 << "." << endl;
   char result3 = toupper ( '$', loc );
   cout << "The upper case of '$' in the locale is: "
        << result3 << "." << endl;
}

use_facet

Devuelve una referencia a una faceta de un tipo especificado almacenado en una configuración regional.

template <class Facet>
const Facet& use_facet(const locale& Loc);

Parámetros

Loc
Configuración regional const que contiene el tipo de faceta al que se hace referencia.

Valor devuelto

Referencia a la faceta de la clase Facet contenida en la configuración regional del argumento.

Comentarios

La referencia a la faceta devuelta por la función de plantilla es válida mientras exista una copia de la configuración regional que la contiene. Si ese objeto de faceta de la clase Facet no aparece en la configuración regional del argumento, la función produce una excepción bad_cast.

Ejemplo

// locale_use_facet.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;

int main( )
{
   locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );
   bool result1 = use_facet<ctype<char> > ( loc1 ).is(
   ctype_base::alpha, 'a'
);
   bool result2 = use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!'
   );

   if ( result1 )
      cout << "The character 'a' in locale loc1 is alphabetic."
           << endl;
   else
      cout << "The character 'a' in locale loc1 is not alphabetic."
           << endl;

   if ( result2 )
      cout << "The character '!' in locale loc2 is alphabetic."
           << endl;
   else
      cout << "The character '!' in locale loc2 is not alphabetic."
           << endl;
}
The character 'a' in locale loc1 is alphabetic.
The character '!' in locale loc2 is not alphabetic.

Vea también

<locale>