Funkcja wcstombs () w C ++ konwertuje szeroki ciąg znaków na równoważną sekwencję wielobajtową.
Funkcja wcstombs () jest zdefiniowana w pliku nagłówkowym.
prototyp wcstombs ()
size_t wcstombs (char * dest, const wchar_t * src, size_t max);
Funkcja wcstombs () przyjmuje trzy argumenty i zwraca wartość całkowitą.
Ta funkcja konwertuje szeroki ciąg znaków, którego pierwszy element jest wskazywany przez src, na jego reprezentację wielobajtową.
Wynik jest przechowywany w lokalizacji pamięci wskazanej przez dest. Parametr max reprezentuje maksymalną liczbę szerokich znaków do konwersji.
Mechanizm konwersji jest taki sam jak w macicy, z tym wyjątkiem, że nie ma to wpływu na stan konwersji macicy. Konwersja zatrzymuje się, jeśli:
- Napotkano znak pusty, który jest następnie konwertowany i zapisywany.
- Znaleziono wchar_t, który nie odpowiada poprawnemu znakowi w bieżących ustawieniach regionalnych C.
- Maksymalna liczba szerokich znaków została przekonwertowana.
wcstombs () Parametry
- dest: wskaźnik do wynikowej tablicy znaków wielobajtowych.
- src: Wskaźnik do pierwszego elementu znaku szerokiego, który jest konwertowany na znak wielobajtowy.
- max: Maksymalna liczba szerokich znaków do konwersji.
wcstombs () Wartość zwracana
- Jeśli konwersja się powiedzie, wcstombs () zwraca liczbę znaków wielobajtowych z wyłączeniem znaku kończącego (tj. „ 0”), który jest zapisywany w tablicy docelowej.
- Jeśli podczas konwersji wystąpi jakikolwiek błąd, zwraca wartość -1.
Przykład: Jak działa funkcja wcstombs ()?
#include #include using namespace std; int main() ( wchar_t src() = L"Welcome To Programiz.com"; char dest(50); int num; num = wcstombs(dest, src, 50); cout << "Number of wide character converted = " << num << endl; cout << "Multibyte Character String = " << dest << endl; return 0; )
Po uruchomieniu programu możliwe wyjście to:
Liczba przekonwertowanych znaków szerokich = 24 wielobajtowe ciągi znaków = Witamy w Programiz.com