首页
社区
课程
招聘
[旧帖] [求助]C++ 關於{ } 漢字判斷 0.00雪花
发表于: 2014-1-11 21:45 1405

[旧帖] [求助]C++ 關於{ } 漢字判斷 0.00雪花

2014-1-11 21:45
1405
下面是對英文的判斷要如何修改才能正常判斷漢字 如:抺,納,倉,亇
'{'機碼是7B,'抺'的機碼是92 7B,'納'的機碼是BC 7B
'}'機碼是7D,'倉'的機碼是82 7D,'亇'的機碼是81 7D
會造成判斷錯誤
該如何改才能正常判斷有英文及漢字的字串

bool FindTextInBrackets(const char* *startChar, const char* endChar, const char* *startText, const char* *endText)
    {
    while (*startChar < endChar)
        {
        while (**startChar != '{')
            {
            if (**startChar == '#')
                {
                SkeepUntilNewline(startChar, endChar);
                return false;
                }
            (*startChar)++;
            if (*startChar >= endChar)
                return false;
            }
        *startText = *startChar + 1;
        while (**startChar != '}')
            {
            (*startChar)++;
            if (*startChar >= endChar)
                return false;
            }
        *endText = *startChar;
        return true;
        }
    return false;
    }

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 398
活跃值: (40)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
首先你要确定你用的是什么字符集,如果是unicode的,那么{}这些符号也是双字节的,只是高字节是0,如果是GBK字符集的,那么首先一个个字节读取,如果读取的此字节是少于128的,那是英文,如果此字节是高于128的,那下一字节当做此字节的低8位,那应该是中文及符号,
2014-1-11 23:11
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
gvx
3
是GBK字符集

如果判斷前一個字節大於80會遇到下面問題
如: 禒} 機碼是 B5 A0 7D

會判斷錯誤
若含有本文有英文及漢字更會有問題

如果判斷後一個字節大於80會遇到下面問題
如: 倉A 機碼是 82 7D 41
2014-1-12 14:01
0
游客
登录 | 注册 方可回帖
返回
//