字符转换函数

 

// 功能:将窄字符转化成宽字符,string->wstring const wchar_t *Multibyte2Unicode(const char *str) { if (str == NULL) { return 0; } setlocale(LC_ALL,".936"); // 1 计算转换后宽字符串的长度。(不包含字符串结束符) int iWLen= mbstowcs(0, str, strlen(str)); // 2 申请空间 static wchar_t *lpwsz = NULL; if (NULL != lpwsz) { delete []lpwsz; } lpwsz = new wchar_t [iWLen+1]; if (NULL == lpwsz) { return 0; } memset(lpwsz, 0, sizeof(wchar_t)*(iWLen+1)); // 3 正式转换 mbstowcs(lpwsz, str, strlen(str)); lpwsz[iWLen] = L'/0'; return lpwsz; } // 将宽字符串转化成窄字符串用于输出 const char *Unicode2Multibyte(const wchar_t *wstr) { setlocale(LC_ALL,".936"); // 1 计算转换后字符串的长度。 int iLen= wcstombs(0, wstr, wcslen(wstr)); // 2 申请空间 static char *lpsz = NULL; if (NULL != lpsz) { delete []lpsz; lpsz = NULL; } lpsz = new char[iLen + 1]; if (NULL == lpsz) { return 0; } memset(lpsz, 0, iLen+1); // 3 正式转换。 wcstombs(lpsz, wstr, iLen + 1); return lpsz; }  

 

// 将宽字符串转化成窄字符串用于输出 const char *Unicode2Multibyte(const wchar_t *wstr) { setlocale(LC_ALL,".936"); // 1 计算转换后字符串的长度。 int iLen= wcstombs(0, wstr, wcslen(wstr)); // 2 申请空间 static char *lpsz = NULL; if (NULL != lpsz) { delete []lpsz; lpsz = NULL; } lpsz = new char[iLen + 1]; if (NULL == lpsz) { return 0; } memset(lpsz, 0, iLen+1); // 3 正式转换。 wcstombs(lpsz, wstr, iLen + 1); return lpsz; }  

你可能感兴趣的:(null,delete)