Libreria locale C ++ - length
Descrizione
Restituisce il numero di caratteri esterni nell'intervallo [from, from_end) che potrebbero essere tradotti in un massimo di caratteri interni massimi, output come se si applicasse codecvt :: in.
Dichiarazione
Di seguito è riportata la dichiarazione per 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;
Parametri
state - È un oggetto di stato.
from, from_end - Serve a trovare un carattere iniziale e uno finale della sequenza sorgente.
max - Viene utilizzato per trovare la lunghezza massima della sequenza tradotta.
Valore di ritorno
Restituisce la lunghezza della sequenza di caratteri, in termini di caratteri interni tradotti.
Eccezioni
No-throw guarantee - non genera mai eccezioni anche se viene generata un'eccezione, non ci sono modifiche nell'oggetto facet.
Gare di dati
Si accede all'oggetto facet.
Esempio
Nell'esempio seguente viene spiegato lo 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;
}
Compiliamo ed eseguiamo il programma sopra, questo produrrà il seguente risultato:
sairamkrishna mammahe