- 论坛徽章:
- 15
|
十舍七匹狼 发表于 2012-06-04 10:55 ![]()
,
网上有一个判断一个字符串中是否有汉字的函数:如果,这时候有个字符串:thisnot差,条件是:现在只能取 ...
如下程序用于判断GBK汉字- /************************************************************************/
- #include <ctype.h>
- #include <strproc.h>
- /*function:iscc 判断是否是汉字*/
- int iscc(unsigned char ch)
- {
- return (ch >= 0x81 && ch < 0xff);
- }
- /*function:cc1 取汉字的一个字节*/
- static int cc1(unsigned char *bp,unsigned char *bufp)
- {
- register unsigned char *p;
- register int i = 0;
- for(p = bufp; iscc(*p); p--)
- {
- i++;
- if(p <= bp)
- break;
- }
- return (i & 1);
- }
- /*function:firstcc 汉字的第一个字节*/
- int firstcc(unsigned char *bp,unsigned char *bufp)
- {
- if(!bufp || !(*bufp) || (bufp < bp) || !iscc(*bufp))
- return 0;
- return (cc1(bp, bufp));
- }
- /*function:secondcc 汉字的第二个字节*/
- int secondcc(unsigned char *bp,unsigned char *bufp)
- {
- if(!firstcc(bp, bufp-1))
- return 0;
- if(*bufp == 0x7f)
- return 0;
- if((*bufp >= 0x40) && (*bufp <= 0xfe))
- return 1;
- return 0;
- }
复制代码 |
|