C ++ mbstowcs () - biblioteka standardowa C ++

Funkcja mbstowcs () w C ++ konwertuje wielobajtowy ciąg znaków na równoważną sekwencję znaków szerokich.

Funkcja mbstowcs () jest zdefiniowana w pliku nagłówkowym.

Prototyp mbstowcs ()

 size_t mbstowcs (wchar_t * dest, const char * src, size_t max);

Funkcja mbstowcs () przyjmuje trzy argumenty i zwraca wartość całkowitą.

Ta funkcja konwertuje wielobajtowy ciąg znaków, którego pierwszy element jest wskazywany przez src, na jego reprezentację w postaci szerokiego znaku (wartość typu wchar_t).

Wynik jest przechowywany w lokalizacji pamięci wskazanej przez dest. Parametr max reprezentuje maksymalną liczbę znaków wielobajtowych do konwersji.

Mechanizm konwersji jest taki sam, jak w przypadku mbtowc (), z wyjątkiem tego, że stan konwersji mbtowc pozostaje niezmieniony. Konwersja zatrzymuje się, jeśli:

  • Napotkano znak pusty, który jest następnie konwertowany i zapisywany.
  • Napotkano nieprawidłowy znak wielobajtowy.
  • Maksymalna liczba znaków wielobajtowych została przekonwertowana.

Parametry mbstowcs ()

  • dest: wskaźnik do wynikowej tablicy szerokich znaków.
  • src: Wskaźnik do pierwszego elementu znaku wielobajtowego, który jest konwertowany na znak szeroki.
  • max: Maksymalna liczba znaków wielobajtowych do konwersji.

mbstowcs () Wartość zwracana

  • Jeśli konwersja się powiedzie, mbstowcs () zwraca liczbę szerokich znaków 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 mbstowcs ()?

 #include #include using namespace std; int main() ( char src() = "xc4xe3xbaxc3"; wchar_t dest(10); int num; num = mbstowcs(dest, src, MB_CUR_MAX); cout << "Number of wide character converted = " << num << endl; wcout << "Wide Character String = " << dest << endl; return 0; )

Po uruchomieniu programu możliwe wyjście to:

 Liczba przekonwertowanych szerokich znaków = 1 szeroki ciąg znaków = ─

Interesujące artykuły...