Biblioteca de configuración regional de C ++: longitud
Descripción
Devuelve el número de caracteres externos en el rango [desde, from_end) que podrían traducirse a un máximo de caracteres internos como máximo, como si se aplicara codecvt :: in.
Declaración
A continuación se muestra la declaración de std :: ctype :: length.
C ++ 98
int length (state_type& state, const extern_type* from,
const extern_type* from_end, size_t max) const;
C ++ 11
int length (state_type& state, const extern_type* from,
const extern_type* from_end, size_t max) const;
Parámetros
state - Es un objeto de estado.
from, from_end - Solía encontrar caracteres iniciales y finales de la secuencia fuente.
max - Se utiliza para encontrar la longitud máxima de la secuencia traducida.
Valor devuelto
Devuelve la longitud de la secuencia de caracteres, en términos de caracteres internos traducidos.
Excepciones
No-throw guarantee - nunca lanza excepciones incluso si se lanza una excepción, no hay cambios en el objeto de faceta.
Carreras de datos
Se accede al objeto de faceta.
Ejemplo
En el siguiente ejemplo se explica sobre std :: ctype :: length.
#include <iostream>
#include <locale>
#include <cwchar>
#include <cstddef>
int main () {
typedef std::codecvt<wchar_t,char,std::mbstate_t> facet_type;
std::locale loc;
const facet_type& myfacet = std::use_facet<facet_type>(loc);
const char source[] = "sairamkrishna mammahe";
std::mbstate_t mystate;
const char * pc;
wchar_t * pwc;
std::size_t length = myfacet.length (mystate, source, source+sizeof(source), 30);
wchar_t* dest = new wchar_t[length];
myfacet.in (mystate, source, source+sizeof(source), pc, dest, dest+length, pwc);
std::wcout << dest << std::endl;
delete[] dest;
return 0;
}
Compilemos y ejecutemos el programa anterior, esto producirá el siguiente resultado:
sairamkrishna mammahe