CString中字符的判断

来源:互联网 发布:经传指标公式源码 编辑:程序博客网 时间:2024/06/06 07:05

转自http://www.cnblogs.com/aoyihuashao/archive/2009/12/23/1630701.html
CString str =  L"0123abc雲中鶴+-*ほニホ";
    CString shuzi,biaodianfuhao,hanzi,daxiezimu,xiaoxiezimu;
 
    for (int i = 0 ; i <str.GetLength();i++)
    {
        int unicode = (int)str.GetAt(i);
        if (unicode <= '9' && unicode >= '0')
        {
            shuzi += str.GetAt(i);
        }
        else if (unicode <= 'z' && unicode >= 'a')
        {
            xiaoxiezimu += str.GetAt(i);
        }
        else if (unicode <= 'Z' && unicode >= 'A')
        {
            daxiezimu += str.GetAt(i);
        }
        else if (unicode > 255)
        {
            hanzi += str.GetAt(i);
        }
        else
        {
            biaodianfuhao += str.GetAt(i);
        }
    }
 
 
 
//多字节字符集
 
CString str;  
    str = "0123abc雲中鶴+-*ほニホ";  
    int   lens;  
    lens = (int)strlen(str);  
 
    unsignedchar hanzi[20],daxiezimu[20],xiaoxiezimu[20],shuzi[20],biaodianfuhao[20];
 
    unsignedchar ansi;  
    int hanzi_len,daxiezimu_len,xiaoxiezimu_len,shuzi_len,biaodianfuhao_len;
    hanzi_len=daxiezimu_len=xiaoxiezimu_len=shuzi_len=biaodianfuhao_len=0;
 
    for(int i=0;i<lens;i++)
    {  
        ansi = str[i];  
        if (ansi <= '9' && ansi >= '0')
        {
            shuzi[shuzi_len++] = ansi;
        }
        else if (ansi <= 'z' && ansi >= 'a')
        {
            xiaoxiezimu[xiaoxiezimu_len++] = ansi;
        }
        else if (ansi <= 'Z' && ansi >= 'A')
        {
            daxiezimu[daxiezimu_len++] = ansi;
        }
        else if (ansi > 127)
        {
            hanzi[hanzi_len++] = ansi;
            hanzi[hanzi_len++] = str[++i];
        }
        else
        {
            biaodianfuhao[biaodianfuhao_len++] = ansi;
        }
    
    }  
    shuzi[shuzi_len] = '\0';  
    daxiezimu[daxiezimu_len] = '\0';
    xiaoxiezimu[xiaoxiezimu_len] = '\0';
    biaodianfuhao[biaodianfuhao_len] = '\0';
    hanzi[hanzi_len] = '\0';
0 0