C++检测标点符号
来源:互联网 发布:车削编程讲解 编辑:程序博客网 时间:2024/06/18 11:16
下面是关于C++如何检测标点符号的,无论中文还是英文标点,这里能检测到的中文标点符号为GB2312编码格式的
BOOL isText(string cStrName)
{
const char *str=cStrName.c_str();
char ch = *str++;
int i=1;
if(!(ch=='_' || ((ch & 0x80)&&(*str& 0x80)) || isalpha(ch)))
{
return FALSE;
}
if ((ch&0xff)==0xA1 && (*str& 0x80)>=0x3F)
{
return FALSE;
}
else if((ch&0xff)>0xA1 && (ch&0xff)<0xAA)
{
return FALSE;
}
else if ((ch&0xff)==0xAA && (*str& 0x80)<=0x40)
{
return FALSE;
}
if (ch<0)
{
*str++;
i++;
}
int len = (int)strlen(cStr);
for(i;i<len;i++)
{
ch = *str++;
if(!(ch=='_' || ch=='-'|| (ch & 0x80) || isalpha(ch) || isdigit(ch)))
{
return FALSE;
}
if (i<len-1)
{
if ((ch&0xff)==0xA1 && (*str& 0x80)>=0x3F)
{
return FALSE;
}
else if((ch&0xff)>0xA1 && (ch&0xff)<0xAA)
{
return FALSE;
}
else if ((ch&0xff)==0xAA && (*str& 0x80)<=0x40)
{
{