代码:
#include <string.h>
#include <stdio.h>
int main()
{
char* s = "abc中文def";
int n = strlen(s);
wchar_t* s2 = L"abc中文def";
int n2 = wcslen(s2);
printf("n=%d, n2=%d\n", n, n2);
return 0;
}
运行结果:
n=10, n2=8
Press any key to continue
两个字符串对应的内存:
// wchar_t*
00422F7C 61 00 62 00 63 00 2D 4E 87 65 a.b.c.-N噀
00422F86 64 00 65 00 66 00 00 00 00 00 d.e.f.....
00422F90 00 00 00 00 00 00 00 00 00 00 ..........
// char*
0042201C 61 62 63 D6 D0 CE C4 64 65 66 abc中文def
00422026 00 00 00 00 00 00 69 33 38 36 ......i386
参考:
- 《Windows程序设计》第二章:An Introduction to Unicode
- ANSI-C标准