ctype — Klasa
Klasa zawierająca zestaw reguł, który służy do klasyfikowania znaków, konwersji z wielkich i małych liter i konwersji między macierzystym zestawem znaków i zestawem używanym przez ustawienia regionalne.
Składnia
template <class CharType>
class ctype : public ctype_base;
Parametry
Typ char
Typ używany w programie do kodowania znaków.
Uwagi
Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w pliku id
. Do kryteriów klasyfikacji jest dostarczany typ zagnieżdżonej maski bitów w klasie bazowej ctype_base.
Biblioteka Standardowa języka C++ definiuje dwie jawne specjalizacje tego szablonu klasy:
ctype<char>
, jawna specjalizacja, której różnice są opisane oddzielnie. Aby uzyskać więcej informacji, zobaczctype<char>
Klasa.ctype<wchar_t>
, który traktuje elementy jako znaki szerokie.
Inne specjalizacje szablonu ctype<CharType>
klasy:
Przekonwertuj wartość typu CharType na wartość typu
char
za pomocą wyrażenia(char)ch
.Przekonwertuj bajt wartości typu
char
na wartość typu CharType za pomocą wyrażeniaCharType(byte)
.
Wszystkie inne operacje są wykonywane na char
wartościach w taki sam sposób jak w przypadku jawnej specjalizacji ctype<char>
.
Konstruktory
Konstruktor | opis |
---|---|
ctype | Konstruktor dla obiektów klasy ctype , które służą jako zestawy reguł ustawień regionalnych dla znaków. |
Typedefs
Nazwa typu | opis |
---|---|
char_type | Typ, który opisuje znak używany przez ustawienie regionalne. |
Funkcje składowe
Funkcja składowa | opis |
---|---|
do_is | Funkcja wirtualna wywoływana w celu sprawdzenia, czy pojedynczy znak ma określony atrybut, lub sklasyfikowania atrybutów każdego znaku w zakresie i przechowywania ich w tablicy. |
do_narrow | Funkcja wirtualna wywoływana w celu przekonwertowania znaku typu CharType używanego przez ustawienia regionalne na odpowiedni znak typu char w natywnym zestawie znaków. |
do_scan_is | Wirtualna funkcja wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który pasuje do określonej maski. |
do_scan_not | Funkcja wirtualna wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który nie pasuje do określonej maski. |
do_tolower | Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich małe litery. |
do_toupper | Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich wielkie litery. |
do_widen | Funkcja wirtualna wywoływana w celu konwertowania znaku typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używanego przez ustawienia regionalne. |
is | Sprawdza, czy pojedynczy znak ma określony atrybut, lub klasyfikuje atrybuty każdego znaku w zakresie i przechowuje je w tablicy. |
wąski | Konwertuje znak typu CharType używany przez ustawienia regionalne na odpowiedni znak typu char w natywnym zestawie znaków. |
scan_is | Lokalizuje pierwszy znak w zakresie, który pasuje do określonej maski. |
scan_not | Lokalizuje pierwszy znak w zakresie, który nie pasuje do określonej maski. |
tolower | Konwertuje znak lub zakres znaków na małe litery. |
toupper | Konwertuje znak lub zakres znaków na wielkie litery. |
rozszerzyć | Konwertuje znak typu char w postaci natywnej ustawionej na odpowiedni znak typu CharType używany przez ustawienia regionalne. |
Wymagania
Nagłówek:<ustawienia regionalne>
Przestrzeń nazw: std
ctype::char_type
Typ, który opisuje znak używany przez ustawienie regionalne.
typedef CharType char_type;
Uwagi
Typ jest synonimem parametru CharType szablonu.
Przykład
Zobacz rozszerzenie funkcji składowej, aby zapoznać się z przykładem używanym char_type
jako wartość zwracana.
ctype::ctype
Konstruktor dla obiektów typu ctype klasy, które służą jako zestawy reguł ustawień regionalnych dla znaków.
explicit ctype(size_t _Refs = 0);
Parametry
_Bibl.
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.
Uwagi
Możliwe wartości parametru _Refs i ich istotności to:
0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.
1: Okres istnienia obiektu musi być zarządzany ręcznie.
> 1: Te wartości nie są zdefiniowane.
Nie są możliwe żadne bezpośrednie przykłady, ponieważ destruktor jest chroniony.
Konstruktor inicjuje obiekt locale::facet
podstawowy za pomocą ustawień regionalnych::facet( _Refs
).
ctype::d o_is
Funkcja wirtualna wywoływana w celu sprawdzenia, czy pojedynczy znak ma określony atrybut, lub sklasyfikowania atrybutów każdego znaku w zakresie i przechowywania ich w tablicy.
virtual bool do_is(
mask maskVal,
CharType ch) const;
virtual const CharType *do_is(
const CharType* first,
const CharType* last,
mask* dest) const;
Parametry
maskaVal
Wartość maski, dla której ma zostać przetestowany znak.
Ch
Znak, którego atrybuty mają być testowane.
pierwszy
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być klasyfikowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie, którego atrybuty mają być klasyfikowane.
dest
Wskaźnik na początek tablicy, w której wartości maski charakteryzujące atrybuty każdego znaku mają być przechowywane.
Wartość zwracana
Pierwsza funkcja składowa zwraca wartość logiczną, która polega true
na tym, że testowany znak ma atrybut opisany przez wartość maski; false
jeśli nie ma atrybutu.
Druga funkcja składowa zwraca tablicę zawierającą wartości maski charakteryzujące atrybuty każdego znaku w zakresie.
Uwagi
Wartości maski klasyfikujące atrybuty znaków są dostarczane przez klasę ctype_base, z której pochodzi typ ctype. Pierwsza funkcja składowa może akceptować wyrażenia dla pierwszego parametru określanego jako maski bitowe i tworzone na podstawie kombinacji wartości maski przez operatory bitowe (|
, &
, ^
, ~
).
Przykład
Zobacz przykład , który wywołuje metodę do_is
.
ctype::d o_narrow
Funkcja wirtualna wywoływana w celu przekonwertowania znaku typu CharType
używanego przez ustawienia regionalne na odpowiedni znak typu char
w natywnym zestawie znaków.
virtual char do_narrow(
CharType ch,
char default = '\0') const;
virtual const CharType* do_narrow(
const CharType* first,
const CharType* last,
char default,
char* dest) const;
Parametry
Ch
Znak typu Chartype
używany przez ustawienia regionalne do przekonwertowania.
default
Wartość domyślna, która ma być przypisana przez funkcję składową do znaków typu CharType
, które nie mają znaków odpowiedników typu char
.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.
dest
Wskaźnik const do pierwszego znaku typu char
w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.
Wartość zwracana
Pierwsza chroniona funkcja składowa zwraca natywny znak typu char, który odpowiada znakowi parametru typu CharType
lub wartości domyślnej , jeśli nie zdefiniowano żadnego odpowiednika.
Druga chroniona funkcja składowa zwraca wskaźnik do docelowego zakresu znaków natywnych przekonwertowanych z znaków typu CharType
.
Uwagi
Druga funkcja szablonu chronionego elementu członkowskiego przechowuje w dest
[ ] wartość do_narrow
( first
[ I
], default
), dla I
w interwale [0, last
- first
). I
Przykład
Zobacz przykład, aby zawęzić metodę , która wywołuje metodędo_narrow
.
ctype::d o_scan_is
Wirtualna funkcja wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który pasuje do określonej maski.
virtual const CharType *do_scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parametry
maskaVal
Wartość maski, która ma być dopasowana przez znak.
pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.
Wartość zwracana
Wskaźnik do pierwszego znaku w zakresie, który pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.
Uwagi
Funkcja chronionego elementu członkowskiego zwraca najmniejszy wskaźnik ptr
w zakresie [ first
, last
), dla którego do_is( maskVal
, * ptr
) ma wartość true.
Przykład
Zobacz przykład scan_is, który wywołuje metodę do_scan_is
.
ctype::d o_scan_not
Funkcja wirtualna wywoływana w celu zlokalizowania pierwszego znaku w zakresie, który nie pasuje do określonej maski.
virtual const CharType *do_scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parametry
maskaVal
Wartość maski nie jest dopasowywana przez znak.
pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.
Wartość zwracana
Wskaźnik do pierwszego znaku w zakresie, który nie pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.
Uwagi
Funkcja chronionego elementu członkowskiego zwraca najmniejszy wskaźnik ptr
w zakresie [ first
, last
), dla którego do_is( maskVal
, * ptr
) jest false.
Przykład
Zobacz przykład scan_not, który wywołuje metodę do_scan_not
.
ctype::d o_tolower
Funkcja wirtualna wywoływana w celu przekonwertowania znaku lub zakresu znaków na małe litery.
virtual CharType do_tolower(CharType ch) const;
virtual const CharType *do_tolower(
CharType* first,
const CharType* last) const;
Parametry
Ch
Znak, który ma zostać przekonwertowany na małe litery.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.
Wartość zwracana
Pierwsza chroniona funkcja składowa zwraca małą postać parametru ch. Jeśli nie istnieje żadna mała litera formularza, zwraca wartość ch. Druga chroniona funkcja składowa zwraca ostatnio.
Uwagi
Druga funkcja szablonu chronionego elementu członkowskiego zastępuje każdy element first
[ ], dla I
w interwale [0, - last
first
), z do_tolower
( first
[ I
]). I
Przykład
Zobacz przykład dla elementu tolower, który wywołuje metodę do_tolower
.
ctype::d o_toupper
Funkcja wirtualna wywoływana w celu konwersji znaku lub zakresu znaków na ich wielkie litery.
virtual CharType do_toupper(CharType ch) const;
virtual const CharType *do_toupper(
CharType* first,
const CharType* last) const;
Parametry
Ch
Znak, który ma zostać przekonwertowany na wielkie litery.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.
Wartość zwracana
Pierwsza chroniona funkcja składowa zwraca wielką postać parametru ch. Jeśli nie istnieje żadna wielka litera, zwraca wartość ch. Druga chroniona funkcja składowa zwraca ostatnio.
Uwagi
Druga funkcja szablonu chronionego elementu członkowskiego zastępuje każdy element first
[ ], dla I
w interwale [0, - last
first
), z do_toupper
( first
[ I
]). I
Przykład
Zobacz przykład polecenia toupper, który wywołuje metodę do_toupper
.
ctype::d o_widen
Funkcja wirtualna wywoływana w celu konwertowania znaku typu char
w postaci natywnej ustawionej na odpowiedni znak typu CharType
używanego przez ustawienia regionalne.
virtual CharType do_widen(char byte) const;
virtual const char *do_widen(
const char* first,
const char* last,
CharType* dest) const;
Parametry
byte
Znak typu char
w zestawie znaków natywnych, który ma zostać przekonwertowany.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.
dest
Wskaźnik do pierwszego znaku typu CharType
w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.
Wartość zwracana
Pierwsza chroniona funkcja składowa zwraca znak typu CharType
, który odpowiada znakowi parametru typu char
natywnego .
Druga chroniona funkcja składowa zwraca wskaźnik do docelowego zakresu znaków typu CharType
używanego przez ustawienia regionalne przekonwertowane z natywnych znaków typu char
.
Uwagi
Druga funkcja szablonu chronionego elementu członkowskiego przechowuje w dest
[ ] wartość do_widen
( first
[ I
]), dla I
w interwale [0, last
- first
). I
Przykład
Zobacz przykład , aby uzyskać szczegółowe informacje, które wywołuje metodę do_widen
.
ctype::is
Sprawdza, czy pojedynczy znak ma określony atrybut, czy klasyfikuje atrybuty każdego znaku w zakresie i przechowuje je w tablicy.
bool is(mask maskVal, CharType ch) const;
const CharType *is(
const CharType* first,
const CharType* last,
mask* dest) const;
Parametry
maskaVal
Wartość maski, dla której ma zostać przetestowany znak.
Ch
Znak, którego atrybuty mają być testowane.
pierwszy
Wskaźnik do pierwszego znaku w zakresie, którego atrybuty mają być klasyfikowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie, którego atrybuty mają być klasyfikowane.
dest
Wskaźnik na początek tablicy, w której wartości maski charakteryzujące atrybuty każdego znaku mają być przechowywane.
Wartość zwracana
Pierwsza funkcja składowa zwraca true
, jeśli przetestowany znak ma atrybut opisany przez wartość maski; false
jeśli nie ma atrybutu.
Druga funkcja składowa zwraca wskaźnik do ostatniego znaku w zakresie, którego atrybuty mają być klasyfikowane.
Uwagi
Wartości maski klasyfikujące atrybuty znaków są dostarczane przez klasę ctype_base Class, z której pochodzi ctype. Pierwsza funkcja składowa może akceptować wyrażenia dla pierwszego parametru określanego jako maski bitowe i tworzone na podstawie kombinacji wartości maski przez operatory bitowe (|
, &
, ^
, ~
).
Przykład
// ctype_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main() {
locale loc1 ( "German_Germany" ), loc2 ( "English_Australia" );
if (use_facet<ctype<char> > ( loc1 ).is( ctype_base::alpha, 'a' ))
cout << "The character 'a' in locale loc1 is alphabetic."
<< endl;
else
cout << "The character 'a' in locale loc1 is not alphabetic."
<< endl;
if (use_facet<ctype<char> > ( loc2 ).is( ctype_base::alpha, '!' ))
cout << "The character '!' in locale loc2 is alphabetic."
<< endl;
else
cout << "The character '!' in locale loc2 is not alphabetic."
<< endl;
char *string = "Hello, my name is John!";
ctype<char>::mask maskarray[30];
use_facet<ctype<char> > ( loc2 ).is(
string, string + strlen(string), maskarray );
for (unsigned int i = 0; i < strlen(string); i++) {
cout << string[i] << ": "
<< (maskarray[i] & ctype_base::alpha "alpha"
: "not alpha")
<< endl;;
};
}
ctype::narrow
Konwertuje znaki typu CharType
używanego przez ustawienia regionalne na odpowiednie znaki typu char
w natywnym zestawie znaków.
char narrow(CharType ch, char default = '\0') const;
const CharType* narrow(
const CharType* first,
const CharType* last,
char default,
char* dest) const;
Parametry
Ch
Znak typu Chartype
używany przez ustawienia regionalne do przekonwertowania.
default
Wartość domyślna, która ma być przypisana przez funkcję składową do znaków typu CharType
, które nie mają znaków odpowiedników typu char
.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.
dest
Wskaźnik const do pierwszego znaku typu char
w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.
Wartość zwracana
Pierwsza funkcja składowa zwraca natywny znak typu char
, który odpowiada znakowi parametru typu CharType default
, jeśli nie zdefiniowano odpowiednika.
Druga funkcja składowa zwraca wskaźnik do docelowego zakresu znaków natywnych przekonwertowanych z znaków typu CharType
.
Uwagi
Pierwsza funkcja składowa zwraca do_narrow(ch
, default
). Druga funkcja składowa zwraca do_narrow (first
, last
, default
, dest
). Gwarantowane są tylko podstawowe znaki źródłowe, które mają unikatowy odwrotny obraz CharType
w obszarze narrow
. Dla tych podstawowych znaków źródłowych następujące niezmienne blokady: narrow
( widen ( c ), 0 ) == c.
Przykład
// ctype_narrow.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "english" );
wchar_t *str1 = L"\x0392fhello everyone";
char str2 [16];
bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).narrow
( str1, str1 + wcslen(str1), 'X', &str2[0] ) != 0); // C4996
str2[wcslen(str1)] = '\0';
wcout << str1 << endl;
cout << &str2[0] << endl;
}
Xhello everyone
ctype::scan_is
Lokalizuje pierwszy znak w zakresie, który pasuje do określonej maski.
const CharType *scan_is(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parametry
maskaVal
Wartość maski, która ma być dopasowana przez znak.
pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.
Wartość zwracana
Wskaźnik do pierwszego znaku w zakresie, który pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.
Uwagi
Funkcja składowa zwraca do_scan_is(maskVal
, first
, last
).
Przykład
// ctype_scan_is.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char *string = "Hello, my name is John!";
const char* i = use_facet<ctype<char> > ( loc1 ).scan_is
( ctype_base::punct, string, string + strlen(string) );
cout << "The first punctuation is \"" << *i << "\" at position: "
<< i - string << endl;
}
The first punctuation is "," at position: 5
ctype::scan_not
Lokalizuje pierwszy znak w zakresie, który nie pasuje do określonej maski.
const CharType *scan_not(
mask maskVal,
const CharType* first,
const CharType* last) const;
Parametry
maskaVal
Wartość maski nie jest dopasowywana przez znak.
pierwszy
Wskaźnik do pierwszego znaku w zakresie do skanowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie do skanowania.
Wartość zwracana
Wskaźnik do pierwszego znaku w zakresie, który nie pasuje do określonej maski. Jeśli taka wartość nie istnieje, funkcja zwraca ostatnią wartość.
Uwagi
Funkcja składowa zwraca do_scan_not(maskVal
, first
, last
).
Przykład
// ctype_scan_not.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char *string = "Hello, my name is John!";
const char* i = use_facet<ctype<char> > ( loc1 ).scan_not
( ctype_base::alpha, string, string + strlen(string) );
cout << "First nonalpha character is \"" << *i << "\" at position: "
<< i - string << endl;
}
First nonalpha character is "," at position: 5
ctype::tolower
Konwertuje znak lub zakres znaków na małe litery.
CharType tolower(CharType ch) const;
const CharType *tolower(CharType* first, const CharType* last) const;
Parametry
Ch
Znak, który ma zostać przekonwertowany na małe litery.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.
Wartość zwracana
Pierwsza funkcja składowa zwraca małą postać parametru ch. Jeśli nie istnieje żadna mała litera formularza, zwraca wartość ch.
Druga funkcja składowa zwraca ostatnio.
Uwagi
Pierwsza funkcja składowa zwraca do_tolower(ch
). Druga funkcja składowa zwraca wartość do_tolower(first
, last
).
Przykład
// ctype_tolower.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char string[] = "HELLO, MY NAME IS JOHN";
use_facet<ctype<char> > ( loc1 ).tolower
( string, string + strlen(string) );
cout << "The lowercase string is: " << string << endl;
}
The lowercase string is: hello, my name is john
ctype::toupper
Konwertuje znak lub zakres znaków na wielkie litery.
CharType toupper(CharType ch) const;
const CharType *toupper(CharType* first, const CharType* last) const;
Parametry
Ch
Znak, który ma zostać przekonwertowany na wielkie litery.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków, których przypadki mają być konwertowane.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków, których przypadki mają być konwertowane.
Wartość zwracana
Pierwsza funkcja składowa zwraca wielką postać parametru ch. Jeśli nie istnieje żadna wielka litera, zwraca wartość ch.
Druga funkcja składowa zwraca ostatnio.
Uwagi
Pierwsza funkcja składowa zwraca do_toupper(ch
). Druga funkcja składowa zwraca do_toupper( first
, last
).
Przykład
// ctype_toupper.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "German_Germany" );
char string[] = "Hello, my name is John";
use_facet<ctype<char> > ( loc1 ).toupper
( string, string + strlen(string) );
cout << "The uppercase string is: " << string << endl;
}
The uppercase string is: HELLO, MY NAME IS JOHN
ctype::widen
Konwertuje znak typu char
w postaci natywnej ustawionej na odpowiedni znak typu CharType
używany przez ustawienia regionalne.
CharType widen(char byte) const;
const char *widen(const char* first, const char* last, CharType* dest) const;
Parametry
byte
Znak typu char w natywnym zestawie znaków, który ma zostać przekonwertowany.
pierwszy
Wskaźnik do pierwszego znaku w zakresie znaków do przekonwertowania.
ostatni
Wskaźnik do znaku bezpośrednio po ostatnim znaku w zakresie znaków do przekonwertowania.
dest
Wskaźnik do pierwszego znaku typu CharType
w zakresie docelowym, który przechowuje przekonwertowany zakres znaków.
Wartość zwracana
Pierwsza funkcja składowa zwraca znak typu CharType
, który odpowiada znakowi parametru typu char
natywnego .
Druga funkcja składowa zwraca wskaźnik do docelowego zakresu znaków typu CharType
używanego przez ustawienia regionalne przekonwertowane z natywnych znaków typu char
.
Uwagi
Pierwsza funkcja składowa zwraca do_widen(byte
). Druga funkcja składowa zwraca do_widen(first
, last
, dest
).
Przykład
// ctype_widen.cpp
// compile with: /EHsc /W3
#include <locale>
#include <iostream>
using namespace std;
int main( )
{
locale loc1 ( "English" );
char *str1 = "Hello everyone!";
wchar_t str2 [16];
bool result1 = (use_facet<ctype<wchar_t> > ( loc1 ).widen
( str1, str1 + strlen(str1), &str2[0] ) != 0); // C4996
str2[strlen(str1)] = '\0';
cout << str1 << endl;
wcout << &str2[0] << endl;
ctype<wchar_t>::char_type charT;
charT = use_facet<ctype<char> > ( loc1 ).widen( 'a' );
}
Hello everyone!
Hello everyone!
Zobacz też
<ustawienia regionalne>
Bezpieczeństwo wątku w standardowej bibliotece C++