C ++ wcstombs () - C ++ biblioteka standardowa

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

Interesujące artykuły...