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

wchar_t 与 char 相互转化

阅读更多
// crt_mbtowc.c
/* Illustrates the behavior of the mbtowc function
 */

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
    int      i;
    char    *pmbc    = (char *)malloc( sizeof( char ) );
    wchar_t  wc      = L'a';
    wchar_t *pwcnull = NULL;
    wchar_t *pwc     = (wchar_t *)malloc( sizeof( wchar_t ) );
    printf( "Convert a wide character to multibyte character:\n" );
    wctomb_s( &i, pmbc, sizeof(char), wc );
    printf( "  Characters converted: %u\n", i );
    printf( "  Multibyte character: %x\n\n", *pmbc );

    printf( "Convert multibyte character back to a wide "
            "character:\n" );
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "  Bytes converted: %u\n", i );
    printf( "  Wide character: %x\n\n", *pwc );
    printf( "Attempt to convert when target is NULL\n" );
    printf( "  returns the length of the multibyte character:\n" );
    i = mbtowc( pwcnull, pmbc, MB_CUR_MAX );
    printf( "  Length of multibyte character: %u\n\n", i );

    printf( "Attempt to convert a NULL pointer to a" );
    printf( " wide character:\n" );
    pmbc = NULL;
    i = mbtowc( pwc, pmbc, MB_CUR_MAX );
    printf( "  Bytes converted: %u\n", i );
}
分享到:
评论

相关推荐

    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...

    int和CString相互转化

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

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

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

    VC常用数据类型列表.pdf

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

    CString转UTF8,UTF8转CString

    通过上述两个函数,我们可以实现`CString`与UTF-8编码字符串之间的相互转换。这对于处理国际化文本或与Web服务交互时非常有用。需要注意的是,在实际应用中应当确保输入数据的有效性,并妥善处理可能发生的异常情况...

    VC常用数据类型列表.doc

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

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

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

    cstring的相关知识.docx

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

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

    - **CString与char*相互转换举例** - 将`char*`转换为`CString`: ```cpp char* cstr = "Hello"; CString str(cstr); ``` - 将`CString`转换为`char*`: ```cpp CString str = "Hello"; char* cstr = (char...

    VC数据类型详解

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

    VC++类型转换详解

    2.1 **数学类型变量与字符串相互转换** - `std::stringstream`可以用来将数值转换为字符串,反之亦然。 - `std::to_string()`函数将数值转换为字符串。 - `std::istringstream`可以用于将字符串解析为数值。 2.2...

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

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

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

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

Global site tag (gtag.js) - Google Analytics