#include <windows.h>
#include <stdio.h>
//function: charTowchar
//purpose:char to WCHAR 、wchar_t、LPWSTR etc
void charTowchar(const char *chr, wchar_t *wchar, int size)
{
MultiByteToWideChar( CP_ACP, 0, chr,
strlen(chr)+1, wchar, size/sizeof(wchar[0]) );
}
//function: wcharTochar
//purpose:WCHAR 、wchar_t、LPWSTR to char
void wcharTochar(const wchar_t *wchar, char *chr, int length)
{
WideCharToMultiByte( CP_ACP, 0, wchar, -1,
chr, length, NULL, NULL );
}
int main (void)
{
char chr[128];
wchar_t *wchar = L"陈鸿钦";
//wchar_t to char
wcharTochar(wchar, chr, sizeof(chr));
printf("char is %s\n", chr);
//char to wchar_t
wchar = (wchar_t *)malloc(sizeof(wchar_t) * 64);
charTowchar(chr, wchar, sizeof(wchar_t) * 64);
wprintf_s(L"%s\n", wchar);//
getchar();
return 0;
}
Requirements: Ws2_32.lib
- 描述: 可以看到在调试的时候wchar是正确的 但是输出有点问题
- 大小: 7 KB
分享到:
相关推荐
`CString`、`wchar_t`、`int`、`string`和`char*`都是编程中常用的字符串和数值类型,它们之间互相转换有助于在不同场景下灵活地处理数据。本篇文章将详细介绍这些类型之间的转换方法。 首先,`CString`是Microsoft...
wchar_t* MBToUnicode(const char* pmb, int32 mLen) { // 转换一个多字节字符串为宽字符字符串 int uLen = MultiByteToWideChar(CP_ACP, 0, pmb, mLen, NULL, 0); if (uLen ) { return NULL; } wchar_t* plzw...
首先,VC++中的基础数据类型是编程的基础,包括布尔型(如boolean,TRUE/FALSE)、字符型(如char、wchar_t)、整型(如int、long、short、small)、浮点型(如float、double)以及指针类型(如void *)。...
当需要将`CString`对象转换为整型变量时,直接使用`atoi`函数并不适用,因为`CString`内部是以`wchar_t`类型存储的,而`atoi`函数接受的是`char*`类型的参数。这会导致转换过程中只识别出第一个字符,从而导致错误的...
- **LPTSTR**:在Windows API中,LPTSTR是一个类型定义,它会根据编译器的设置,指向一个宽字符串(`wchar_t*`)或多字节字符串(`char*`)。这是为了兼容不同字符集而设计的。 - **LPCTSTR**:同样,也是一个类型...
wchar_t *wszUtf8 = new wchar_t[len + 1]; memset(wszUtf8, 0, len * 2 + 2); MultiByteToWideChar(CP_ACP, 0, (LPCTSTR)str_multi, -1, wszUtf8, len); len = WideCharToMultiByte(CP_UTF8, 0, wszUtf8, -1,...
这份文档主要列举了VC++中常见的数据类型及其转化方法,特别强调了数学类型变量与字符串之间的转换,以及涉及 CString、string、char *、BSTR、_bstr_t、CComBSTR、VARIANT 等特殊类型的数据操作。 一、VC 常用数据...
在上述给定的文档中,提到了一个自定义类CUser,它封装了wchar_t类型与char类型之间的转换方法。该类提供了WcharToChar方法用于将宽字符转换为多字节字符,以及CharToWchar方法用于将多字节字符转换为宽字符。转换...
- `CString`与`char*`的相互转换,使用`GetBuffer/SetBuffer`或`CString::GetBuffer`和`ReleaseBuffer`方法。 - `CString`与`BSTR`型转换,利用`SysAllocString`和`SysFreeString`函数。 - `VARIANT`型转化为`...
#### 九、char*与wchar_t*之间相互转换 - **wcstombs_s**: 从宽字符字符串转换为多字节字符串。 - **mbstowcs_s**: 从多字节字符串转换为宽字符字符串。 #### 十、利用API实现字符编码的转换 - **...
- `wchar_t`:16位无符号整型,用于存储宽字符。 - **Win32 API常用数据类型**:主要用于定义函数返回值、消息参数和结构体成员等。 - `BOOL/BOOLEAN`:8位布尔型。 - `BYTE`:8位无符号整型。 - `BSTR`:32位...
标题提到的"C++中各种string的相互转化"主要涉及的是在C++中不同类型的字符串对象之间的转换,这些对象可能包括标准库中的`std::string`、C风格的字符数组(如`char*`或`char[]`)以及宽字符字符串(如`std::wstring...
13. **wchar\_t**: 16位无符号整型,用于表示Unicode字符,支持更多字符集。 **二.常用数据类型转化** 2.1 **数学类型变量与字符串相互转换** - `std::stringstream`可以用来将数值转换为字符串,反之亦然。 - ...
* CString 及 string、char* 的转换和操作。 * VARIANT 型转化成 CString 型。 四、数据类型操作 在编程过程中,数据类型操作是非常重要的操作。例如: * 数学类型变量的操作。 * 字符串的操作。 * VARIANT 型的...