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) ); }
相关推荐
关于char,_wchar_t,_TCHAR,__T(),L,宏__T、TEXT,_TEXT、L.
CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析 CString、LPCTSTR、LPTSTR、TCHAR、WCHAR、string、wchar_t、char解析
详细介绍了VC++中的char wchar_T和TCHAR的含义及区别,对于想了解各种编码的初学者有着较大用处
VC++中的char,wchar_t,TCHAR,主要讲解char,wchar_t,TCHAR的用法及区别,适合初学者了解相关内容
Visual C++ 2005中CHAR,TCHAR,CString间转换函数
其中char和string之间、wchar_t和wstring之间的转换较为简单,代码在vs2010下测试通过。 代码如下:#include <iostream>#include <string>#include <tchar>#include using namespace std; //Converting a WChar ...
关于char, wchar_t, TCHAR, _T(),L,宏 _T、TEXT,_TEXT、L
详细的介绍了char wchar TCHAR的联系和区别,非常适合初学者了解
介绍char_TCHAR_WCHAR三种类型的区别
VC++ MFC里定义了一些宏,例如LPCTSTR表示const TCHAR*,LPTSTR表示TCHAR*,LPSTR表示char*,LPWSTR表示wchar_t*,LPCSTR表示const char*,LPCWSTR表示const wchar_t*。总之就是LP表示指针,C表示const,STR表示char...
texport用于自动生成 TCHAR 类型程序的 char 和 wchar_t 类型的函数调用存根
觉得麻烦,于是就自己写了一个类来封装wchar_t与char类型间的转换,其他的,诸如:CString\ LPWSTR\TCHAR CHAR\LPSTR之间也是一样用 代码如下: #include <iostream> using namespace std; class CUser { public: ...
当在 windows 下开发程序库时,使用 TCHAR 类型,比直接使用 char 和 wchar_t 具有更好的移植性。但是在编写动态链接库时,不能直接导出 TCHAR 类型的函数,给 TCHAR 类型函数的使用带来了一些限制。使用 texport 在...
代码如下:#include <stdio>#include <windows>#include <wininet>#define MAXSIZE 1024#pragma comment(lib, “Wininet.lib”) void urlopen(_TCHAR*); int _tmain(int argc, _TCHAR* argv[]){ urlopen(_T(“//...
lchar,wchar_t,CHAR,BYTE,UCHAR,WCHAR,TCHAR,TBYTE char是C语言标准数据类型,字符型,至于由几个字节组成通常由编译器决定,一般一个字节。 wchar_t是char的Unicode版本。相当于unsigned short。一般两个...
int _tmain(int argc, _TCHAR argv[]) int _tmain(int argc, _TCHAR argv[])
代码如下:#include <stdio>...void urlopen(_TCHAR*); int _tmain(int argc, _TCHAR* argv[]){ urlopen(_T(“http://coderzh.cnblogs.com”)); return 0;} void urlopen(_TCHAR* url){ HINTERNET hSession = Interne
能够有效的将QString转换为TCHAR*,编译运行通过
VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。 代码如下: bool UTF8ToUnicode(const ...
typedef wchar_t TCHAR; #else typedef char TCHAR; #endif #ifdef UNICODE #define _tcscpy wcscpy #else #define _tcscpy strcpy #endif 再来看_tmain()的定义 #ifdef UNICODE #define _tmain ...