#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <tchar.h>
void main()
{
DWORD dwCount;
TCHAR *tC1="topStar";
TCHAR *tC2="TOPstar";
dwCount=_tcscmp(tC1,tC2);
_tprintf("%d",dwCount);
}
以上的写法明显是错误的,因为TCHAR变量所指的字符串没有经过TEXT转换。
因为字符串默认是以ASCII码方式保存,因为是英文字符,因此若以UNICODE 方式保存,就必须TEXT()转换成UNICODE格式。
以上代码有三个错误,以下的改变才是正确的:
#include <stdio.h>
#include <windows.h>
#include <string.h>
#include <tchar.h>
void main()
{
DWORD dwCount;
TCHAR *tC1=TEXT("topStar");
TCHAR *tC2=TEXT("TOPstar");
dwCount=_tcsicmp(tC1,tC2);
_tprintf(TEXT("%d"),dwCount);
}
如果tC1是数组名,则也应该这样定义:
TCHAR tC1[]=TEXT("TOPstar");
必须用TEXT()给转换一下。