BCB:字符串是否含有中文

//字符串是否含有中文,true 表示含有中文,false 表示不含中文
bool TForm1::isContainEng(AnsiString ID)
{
        bool rtn = false;
        try
        {
                AnsiString::TStringMbcsByteType temp;
                for (int i=0;i < ID.Length();i++)
                {
                        temp = ID.ByteType(i);
                        if(temp != mbSingleByte)
                        {
                                rtn = true;
                                break;
                        }
                }
        }
        catch(...)
        {
        }
        return rtn;
}
下面的一段代码是老妖提供的,当时我的目的是用来分离AnsiString 型字符串中的数字和字符串,我看你的问题比我得问题更简单,适当的修改一下下面的程序,就可以达到你的目的,提示很简单,就不帮你写出完整代码了,有利于你水平的提高。

 
       float *Cmd;
        TStringStream *ss = new TStringStream(string);
        TParser *pParser = new TParser(ss);
        int i = 0;
        Cmd = new float[8];

        for(;;)
        {
           String strTokenValue = pParser->TokenString();
           char cTokenType = pParser->Token;
           switch(cTokenType)
           {
//            case toSymbol:
//                Memo1->Lines->Add(strTokenValue + " 是一个符号");
//                break;
            case toInteger:
                Cmd[i++] = StrToFloat(strTokenValue);
                break;
            case toFloat:
                Cmd[i++] = StrToFloat(strTokenValue);
                break;
//            case toString:
//                Memo1->Lines->Add(strTokenValue + " 是一个字符串");
//            case toWString:
//                Memo1->Lines->Add(strTokenValue + " 是一个宽字符串");
//            break;
            default:
                ShowMessage("包含非法字符!");
                break;
        }
        if(pParser->NextToken() == toEOF)
            break;
    }
    delete pParser;
    delete ss;

你可能感兴趣的:(BCB:字符串是否含有中文)