/
niceSOFT
/
swig
Обзор
Документация
Войти
/
niceSOFT
/
swig
Код
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Examples/ocaml/std_string/example.h
36 строк
1 KB
Art Yerkes
std::string and std::wstring example.
16 фев 2003, 16:32
16 фев 2003, 16:32
5b0895e
Код
Авторство
О чём код?
/* File : example.h -- stolen from the guile std_vector example */ #include <string> #include <algorithm> #include <functional> #include <numeric> #include <stdlib.h> #include <locale.h> std::string from_wstring_with_locale( const std::wstring source, const std::string locale ) { const char *current_locale = setlocale( LC_CTYPE, locale.c_str() ); int required_chars = wcstombs( NULL, source.c_str(), 0 ); std::string s; char *temp_chars = new char[required_chars + 1]; temp_chars[0] = 0; wcstombs( temp_chars, source.c_str(), required_chars + 1 ); s = temp_chars; delete [] temp_chars; setlocale( LC_CTYPE, current_locale ); return s; } std::wstring to_wstring_with_locale( const std::string source, const std::string locale ) { const char *current_locale = setlocale( LC_CTYPE, locale.c_str() ); int required_chars = mbstowcs( NULL, source.c_str(), 0 ); std::wstring s; wchar_t *temp_chars = new wchar_t[required_chars + 1]; temp_chars[0] = 0; mbstowcs( temp_chars, source.c_str(), required_chars + 1 ); s = temp_chars; delete [] temp_chars; setlocale( LC_CTYPE, current_locale ); return s; }