MSDN文档:
strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l
https://msdn.microsoft.com/en-us/library/78zh94ax.aspx
strcmp, wcscmp, _mbscmp
https://msdn.microsoft.com/en-us/library/e0z9k731.aspx
strchr, wcschr, _mbschr, _mbschr_l
https://msdn.microsoft.com/en-us/library/b34ccac3.aspx
char*函数与THCAR*(wchar_t*)函数对应关系是:
strlen -》 wcslen
strcpy -》 wcscpy
strcmp -》wcscmp
strchr -》 wcschr
代码示例:
// crt_strlen.c // Determine the length of a string. For the multi-byte character // example to work correctly, the Japanese language support for // non-Unicode programs must be enabled by the operating system. #include <string.h> #include <locale.h> int main() { char* str1 = "Count."; wchar_t* wstr1 = L"Count."; char * mbstr1; char * locale_string; // strlen gives the length of single-byte character string printf("Length of '%s' : %d\n", str1, strlen(str1) ); // wstrlen gives the length of a wide character string wprintf(L"Length of '%s' : %d\n", wstr1, wcslen(wstr1) ); // A multibyte string: [A] [B] [C] [katakana A] [D] [\0] // in Code Page 932. For this example to work correctly, // the Japanese language support must be enabled by the // operating system. mbstr1 = "ABC" "\x83\x40" "D"; locale_string = setlocale(LC_CTYPE, "Japanese_Japan"); if (locale_string == NULL) { printf("Japanese locale not enabled. Exiting.\n"); exit(1); } else { printf("Locale set to %s\n", locale_string); } // _mbslen will recognize the Japanese multibyte character if the // current locale used by the operating system is Japanese printf("Length of '%s' : %d\n", mbstr1, _mbslen(mbstr1) ); // _mbstrlen will recognize the Japanese multibyte character // since the CRT locale is set to Japanese even if the OS locale // isnot. printf("Length of '%s' : %d\n", mbstr1, _mbstrlen(mbstr1) ); printf("Bytes in '%s' : %d\n", mbstr1, strlen(mbstr1) ); }
相关推荐
本文将深入解析几种常见的字符串类型,包括`CString`、`LPCTSTR`、`LPTSTR`、`TCHAR`、`WCHAR`、`string`、`wchar_t`和`char`。 1. `CString`:`CString`是Microsoft MFC(Microsoft Foundation Classes)库中定义...
`char`, `_wchar_t`, `_TCHAR`, `__T()`, `L`, 宏`__T`, `TEXT`, `_TEXT`, 和 `L` 都是与字符编码和跨平台兼容性紧密相关的概念。 1. **`char`**: 这是最基本的字符类型,通常用于处理ASCII编码的单字节字符。例如...
### VC++中的char, wchar_T和TCHAR详解 在VC++开发环境中,处理文本数据时,程序员经常会遇到三种字符类型:`char`、`wchar_T` 和 `TCHAR`。这些类型的选择对于确保代码的兼容性和效率至关重要。本文将详细介绍这三...
在VC++中,char、wchar_t和TCHAR是三个非常重要的字符类型,它们之间的区别和使用方法是初学者需要了解的基础知识。下面我们将详细介绍这三个字符类型的概念、用法和区别。 一、char类型 char是C++中的基本字符...
在 C/C++ 中,为了编写能够同时支持 ANSI 和 Unicode 编码的代码,引入了 `TCHAR` 和 `_T()` 宏。 - **`TCHAR`**: 这个类型定义在 `<tchar.h>` 头文件中,其具体定义取决于是否定义了 `_UNICODE` 宏。如果定义了 `_...
而在"Cstring_Char.cpp"和"Cstring_Char.h"这两个源文件中,很可能包含了具体的转换函数和示例代码,用于展示如何在`CHAR`、`TCHAR`和`CString`之间进行转换和操作。 例如,一个常见的转换函数可能如下所示: ```...
可以使用函数将char类型转换为wchar_t类型,例如,使用mbstowcs()函数,可以将char数组转换为wchar_t数组: wchar_t wcBuf[20]; mbstowcs(wcBuf, szChar, 20); 解决方法四:使用wstring和string 可以使用wstring...
TCHAR*则是在Windows SDK中定义的,根据定义 `_UNICODE` 和 `_MBCS` 宏的状态,它可以是`wchar_t*`(Unicode)或`char*`(非Unicode)。 转换方法主要有以下几种: 1. 使用QString的`toLocal8Bit()`函数: 当需要...
在C/C++编程中,尤其是在Windows平台上的开发中,正确理解和使用`char`、`TCHAR`、`WCHAR`这三种字符类型对于处理文本数据至关重要。下面我们将深入探讨这三种类型的特点、区别以及它们在Unicode与非Unicode环境中的...
综上所述,`char*` 转换为 `LPCWSTR` 主要有三种方法:使用 `MultiByteToWideChar` 函数、直接定义宽字符字符串以及使用 `_T` 宏。每种方法都有其适用场景和优缺点,开发者可以根据具体需求选择合适的方法。
本文将深入探讨三种常见的字符类型:`char`、`wchar_t`和`WCHAR`,以及它们之间的区别和相互转换。 1. `char`类型: `char`是C++中的基本数据类型,用于存储单字节的ASCII字符。在ANSI编码(通常是ISO 8859-1)中...
在Windows API中,`TCHAR`是一个宏定义,根据项目配置(多字节或宽字节字符集)动态地映射到`char`或`wchar_t`。因此,`LPTSTR`和`LPCTSTR`是`TCHAR*`和`const TCHAR*`的别名。 标准模板库(STL)提供了`std::string`...
CString、string、string.h、LPCTSTR、LPTSTR、TCHAR、WCHAR、wchar_t、char、BSTR、_bstr_t 这些是不同环境中处理字符串的不同方式: - **CString**:MFC框架中的字符串类。 - **string**:STL中的`std::string`...
本文将对 C++ 字符类型进行总结,包括 char、wchar_t、TCHAR、BSTR 等类型的定义、特点和使用方法。 1. char 类型 char 是 C++ 中最基本的字符类型,用于存储单个字符。char 类型的变量可以存储一个字节的数据,...
本资源提供了 C++ 中 Unicode 和 SBCS(Single Byte Character Set,单字节字符集)函数的对照表,对于_char_和_TCHAR_类型的字符操作函数的使用非常有帮助。下面是对照表中的部分知识点解释: 1. 字符操作函数 在...
CString 主要应用于 MFC 和 ATL 编程中,支持多种字符类型,如 char、wchar_t 和 TCHAR。 CString 的构造函数可以接受基本的字符串变量,如 char* 等。CString 提供了许多实用的成员函数,如 operator+=、operator+...
在C++编程中,特别是在MFC(Microsoft Foundation Classes)库中,`CString`、`TCHAR`和`CHAR`类型扮演着关键的角色,它们之间的转换是解决UNICODE和非UNICODE兼容问题的关键。 `CString`是MFC库提供的一种字符串类...
首先,通过`_bstr_t`构造函数将`std::string`的`c_str()`转换为BSTR类型,然后将BSTR类型强制转换为宽字符指针`wchar_t*`,最后将这个指针转换为`std::wstring`对象。 #### `wstring`到`string` ```cpp string ws2s...
在C/C++中,`char`类型不仅可以用来存储单个字符,还可以组成数组(`char[]`)来表示字符串。 #### 2. `TCHAR` `TCHAR`是Microsoft为了支持多字节字符集(MBCS)和Unicode编码而在其库中定义的一个宏。它的具体类型取...
`TCHAR` 类型可以根据编译器的设置(`UNICODE` 定义与否)动态决定为`char`或`wchar_t`类型。因此,`CString` 可以方便地支持ANSI和Unicode编码。此外,`CString` 提供了一系列方便的方法来执行字符串的拼接、查找、...