C ++ Locale Library - comprimento
Descrição
Ele retorna o número de caracteres externos no intervalo [de, de_end) que poderiam ser traduzidos em no máximo de caracteres internos máximos, saída como se aplicasse codecvt :: in.
Declaração
A seguir está a declaração para 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 - É um objeto de estado.
from, from_end - É usado para encontrar os caracteres inicial e final da sequência de origem.
max - É usado para encontrar o comprimento máximo da sequência traduzida.
Valor de retorno
Ele retorna o comprimento da sequência de caracteres, em termos de caracteres internos traduzidos.
Exceções
No-throw guarantee - nunca lança exceções, mesmo se uma exceção for lançada, não há mudanças no objeto de faceta.
Corridas de dados
O objeto faceta é acessado.
Exemplo
No exemplo a seguir 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;
}
Vamos compilar e executar o programa acima, isso produzirá o seguinte resultado -
sairamkrishna mammahe