VC beurteilt die Anzahl der Buchstaben, Zahlen, chinesischen Schriftzeichen und anderen Zeichen in einer UNICODE-Zeichenfolge

void GetCharacterNumber(LPCTSTR szTxt,int &nChinese,int &nEnlish,int &nNumber,int &nOther) 
{
int nLen = WideCharToMultiByte(CP_ACP, 0, szTxt, -1, NULL, 0, NULL, FALSE);
char *szTemp = new char[nLen];
if (!szTemp)
{
delete[]szTemp;
zurückkehren;
}
WideCharToMultiByte(CP_ACP, 0, szTxt, -1, szTemp, nLen, NULL, FALSE);
CStringA strTxt=szTemp;
delete[]szTemp;
    //Länge der Zeichenfolge in Bytes abrufen
    int Lenth = strTxt.GetLength();
    int nELenth = 0; //Anzahl der englischen Zeichen
    int nCLenth = 0; //Anzahl der chinesischen Zeichen
    int nNLenth = 0 ; //Anzahl der Zeichen
    int nOLenth = 0; //Anzahl der anderen Zeichen
    int nTotalLenth = 0;//Gesamtzahl der Zeichen
    for(int i=0;i<Lenth;i++)
    {
        char c = strTxt.GetAt(i );
        //Es ist ein chinesisches Zeichen. Chinesischer Zeichencode 1XXX XXXX 1XXX XXXX
        if(c<0||c>255)
            continue;
        //Es ist ein englisches Zeichen
        else if((c>='A'&&c<=' Z')||( c>='a'&&c<='z'))
            nELenth++;
sonst if(c>='0'&&c<='9')
nNLenth++;
anders 
nOLenth++;
    }
    // Berechnen Sie die Anzahl der chinesischen Zeichen. Jedes chinesische Zeichen belegt zwei Bytes
    nCLenth = (Lenth-nELenth-nNLenth-nOLenth)/2;
nChinese=nCLenth;
nEnlish=nELenth;
nNumber=nNLenth;
nOther=nOLenth;
}

Guess you like

Origin blog.csdn.net/landeli2/article/details/77878763