`
futrueboy
  • 浏览: 84902 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

char 和 wchar_t相互转化

阅读更多
#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
分享到:
评论

相关推荐

    VC之CString,wchar_t,int,string,char*之间的转换

    `CString`、`wchar_t`、`int`、`string`和`char*`都是编程中常用的字符串和数值类型,它们之间互相转换有助于在不同场景下灵活地处理数据。本篇文章将详细介绍这些类型之间的转换方法。 首先,`CString`是Microsoft...

    Unicode、Ascall、UTF8相互转化

    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常用数据类型列表.pdf

    首先,VC++中的基础数据类型是编程的基础,包括布尔型(如boolean,TRUE/FALSE)、字符型(如char、wchar_t)、整型(如int、long、short、small)、浮点型(如float、double)以及指针类型(如void *)。...

    int和CString相互转化

    当需要将`CString`对象转换为整型变量时,直接使用`atoi`函数并不适用,因为`CString`内部是以`wchar_t`类型存储的,而`atoi`函数接受的是`char*`类型的参数。这会导致转换过程中只识别出第一个字符,从而导致错误的...

    (资料大全加程序)C++ 字符串之间的相互转化 宽字符与多字符集(LPTSTR、LPCSTR、LPCTSTR、LPSTR)

    - **LPTSTR**:在Windows API中,LPTSTR是一个类型定义,它会根据编译器的设置,指向一个宽字符串(`wchar_t*`)或多字节字符串(`char*`)。这是为了兼容不同字符集而设计的。 - **LPCTSTR**:同样,也是一个类型...

    CString转UTF8,UTF8转CString

    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常用数据类型列表.doc

    这份文档主要列举了VC++中常见的数据类型及其转化方法,特别强调了数学类型变量与字符串之间的转换,以及涉及 CString、string、char *、BSTR、_bstr_t、CComBSTR、VARIANT 等特殊类型的数据操作。 一、VC 常用数据...

    C++多字节字符与宽字节字符相互转换

    在上述给定的文档中,提到了一个自定义类CUser,它封装了wchar_t类型与char类型之间的转换方法。该类提供了WcharToChar方法用于将宽字符转换为多字节字符,以及CharToWchar方法用于将多字节字符转换为宽字符。转换...

    VC数据类型详解

    - `CString`与`char*`的相互转换,使用`GetBuffer/SetBuffer`或`CString::GetBuffer`和`ReleaseBuffer`方法。 - `CString`与`BSTR`型转换,利用`SysAllocString`和`SysFreeString`函数。 - `VARIANT`型转化为`...

    cstring的相关知识.docx

    #### 九、char*与wchar_t*之间相互转换 - **wcstombs_s**: 从宽字符字符串转换为多字节字符串。 - **mbstowcs_s**: 从多字节字符串转换为宽字符字符串。 #### 十、利用API实现字符编码的转换 - **...

    VC数据类型详解,解说详细

    - `wchar_t`:16位无符号整型,用于存储宽字符。 - **Win32 API常用数据类型**:主要用于定义函数返回值、消息参数和结构体成员等。 - `BOOL/BOOLEAN`:8位布尔型。 - `BYTE`:8位无符号整型。 - `BSTR`:32位...

    C++中各种string的相互转化.zip_Windows编程_WINDOWS_

    标题提到的"C++中各种string的相互转化"主要涉及的是在C++中不同类型的字符串对象之间的转换,这些对象可能包括标准库中的`std::string`、C风格的字符数组(如`char*`或`char[]`)以及宽字符字符串(如`std::wstring...

    VC++类型转换详解

    13. **wchar\_t**: 16位无符号整型,用于表示Unicode字符,支持更多字符集。 **二.常用数据类型转化** 2.1 **数学类型变量与字符串相互转换** - `std::stringstream`可以用来将数值转换为字符串,反之亦然。 - ...

    VC++6.0常用数据类型及其操作详解

    * CString 及 string、char* 的转换和操作。 * VARIANT 型转化成 CString 型。 四、数据类型操作 在编程过程中,数据类型操作是非常重要的操作。例如: * 数学类型变量的操作。 * 字符串的操作。 * VARIANT 型的...

Global site tag (gtag.js) - Google Analytics