69,371
社区成员
发帖
与我相关
我的任务
分享
void DBCToSBC(char *srcStr, char *str)
{
int ilen;
int i = 0, j = 0;
unsigned char ch1, ch2;
ilen = strlen(srcStr);
if ((ilen >= 128) || str == NULL)
{
return ;
}
for (i = 0; i < ilen; i++)
{
ch1 = srcStr[i];
ch2 = srcStr[i+1];
//全角英文
if(ch1 == 0xA3) //这里为什么是0xA3??
{
str[j++] = ch2 - 0x80;
i++;
continue;
}
//全角空格
else if((ch1 == 0xA1) && (ch2 == 0xA1)) // ??
{
str[j++] = 0x20;
i++;
continue;
}
//全角汉字
else if ((ch1 >= 0x81) && (ch1 <= 0xFE) && (ch2 >= 0x40) && (ch2 <= 0xFE)) //??
{
str[j++] = ch1;
str[j++] = ch2;
i++;
continue;
}
str[j++] = ch1;
}
str[j] = '\0';
return ;
}