API函数设计有问题?各位慎用
不知道是谁说的,IsDBCSleadByteEx可以判断一个字节是否为汉字的首字节。
事实只通过一个字节很难判断是否为汉字的首字节。
达不到功能,只好自己写了。
于是自己用标准C写了一替代来用:
//判断一个字节是否为汉字的前半部分,返回值为1;如果是后半部分,返回0 ;如果是单字节字符,则返回的是2
int IsCSDNLeadByte(unsigned char* p , unsigned int nPos) ;
//
int CPrintEx::IsCSDNLeadByte(unsigned char* p , unsigned int nPos)
{
int flag = 1 ;
UINT i ;
if(*(p+nPos)<=0x80) //如果该字节是单字节,则直接返回
return 2 ;
for(i=0 ; i<nPos ; i++)
{
if(*p++>0x80)
flag =!flag ;
}
return flag ;
}