本篇文章主要介绍宽字符串和标准字符串的互相转换,对中文处理非常有用,标准字符串如果想输出一个单汉字需要连续输出两个字节,比较麻烦,下面给出一个完整的转换程序,希望对看到本文章的人有帮助!![]() #include <iostream> struct auto_setlocate { string WstringToString(const wchar_t* wch) { string WstringToString(const wstring& wstr) { wstring StringToWstring(const char* ch) { wstring StringToWstring(const string& str) { int main() { // 函数string WstringToString(const wchar_t* wch) // 函数string WstringToString(const wstring& wstr) // 函数wstring StringToWstring(const char* ch) // 函数wstring StringToWstring(const string& str) return 0; 关于函数setlocale。 本函数用来配置地域的信息。参数 category 有下列的选择: LC_ALL 包括下面的全项选项都要。 LC_COLLATE 配置字符串比较,PHP 目前尚未实作出来本项。 LC_CTYPE 配置字符类别及转换。例如全变大写 strtoupper()。 LC_MONETARY 配置金融货币,PHP 目前尚未实作。 LC_NUMERIC 配置小数点后的位数。 LC_TIME 配置时间日期格式,与 strftime() 合用。 而参数 locate 若是空字符串 "",则会使用系统环境变量的 locate 或是 LANG 的值。若 locate 为零,则不会改变地域化配置。返回新的地域,若系统尚未实作则返回 false。 另外,关于strlen,wcslen和lstrlen。 strlen() 返回ANSI字符串长度; #include <iostream> int main() { cout<<wcslen(wct)<<endl; 关于wcstombs和mbstowcs函数请参考MSDN。 size_t wcstombs( char *mbstr, const wchar_t *wcstr, size_t count ); mbstr: The address of a sequence of multibyte characters wcstr: The address of a sequence of wide characters count: The maximum number of bytes that can be stored in the multibyte output string size_t mbstowcs( wchar_t *wcstr, const char *mbstr, size_t count ); wcstr: The address of a sequence of wide characters mbstr: The address of a sequence of multibyte characters count: The number of multibyte characters to convert |
|
来自: just_person > 《C 》