C Acquisition of Pinyin Initials of Chinese Characters

  • 2021-07-06 11:36:22
  • OfStack

Acquiring the first letter of Chinese Pinyin is a function that is often needed in the process of doing projects. Today, we mainly discuss how to obtain the first letter of Chinese Pinyin under C #


/// <summary>

///  In the specified string list CnStr Retrieve a string that matches the Pinyin index in 

/// </summary>

/// <param name="CnStr"> Chinese character string </param>

/// <returns> Corresponding Chinese Pinyin initials </returns>

public static string GetSpellCode(string CnStr) {

    string strTemp="";

    int iLen=CnStr.Length;

    int i=0;

    for (i=0;i<=iLen-1;i++) {

           strTemp+=GetCharSpellCode(CnStr.Substring(i,1));

    }

    return strTemp;

}

/// <summary>

///  Get 1 Pinyin number of Chinese characters 1 Three letters, if it is 1 English letters return capital letters directly 

/// </summary>

/// <param name="CnChar"> Single Chinese character </param>

/// <returns> Single capital letter </returns>

private static string GetCharSpellCode(string CnChar) {

    long iCnChar;

    byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);

    // If it is a letter, it returns directly 

    if (ZW.Length==1) {

           return CnChar.ToUpper();

    }

    else {

           // get the array of byte from the single char

          int i1 = (short)(ZW[0]);

          int i2 = (short)(ZW[1]);

          iCnChar = i1*256+i2;

          }    

// iCnChar match the constant

    if ((iCnChar>=45217) && (iCnChar<=45252)) {

           return "A";

    }

    else if ((iCnChar>=45253) && (iCnChar<=45760)) {

          return "B";

    } else if ((iCnChar>=45761) && (iCnChar<=46317)) {

          return "C";

    } else if ((iCnChar>=46318) && (iCnChar<=46825)) {

          return "D";

    } else if ((iCnChar>=46826) && (iCnChar<=47009)) {

          return "E";

    } else if ((iCnChar>=47010) && (iCnChar<=47296)) {

          return "F";

    } else if ((iCnChar>=47297) && (iCnChar<=47613)) {

          return "G";

    } else if ((iCnChar>=47614) && (iCnChar<=48118)) {

          return "H";

    } else if ((iCnChar>=48119) && (iCnChar<=49061)) {

          return "J";

    } else if ((iCnChar>=49062) && (iCnChar<=49323)) {

          return "K";

    } else if ((iCnChar>=49324) && (iCnChar<=49895)) {

          return "L";

    } else if ((iCnChar>=49896) && (iCnChar<=50370)) {

          return "M";

    }else if ((iCnChar>=50371) && (iCnChar<=50613)) {

          return "N";

    } else if ((iCnChar>=50614) && (iCnChar<=50621)) {

          return "O";

    } else if ((iCnChar>=50622) && (iCnChar<=50905)) {

          return "P";

    } else if ((iCnChar>=50906) && (iCnChar<=51386)) {

          return "Q";

    } else if ((iCnChar>=51387) && (iCnChar<=51445)) {

          return "R";

    } else if ((iCnChar>=51446) && (iCnChar<=52217)) {

          return "S";

    } else if ((iCnChar>=52218) && (iCnChar<=52697)) {

          return "T";

    } else if ((iCnChar>=52698) && (iCnChar<=52979)) {

          return "W";

    } else if ((iCnChar>=52980) && (iCnChar<=53640)) {

          return "X";

    } else if ((iCnChar>=53689) && (iCnChar<=54480)) {

          return "Y";

    } else if ((iCnChar>=54481) && (iCnChar<=55289)) {

          return "Z";

    } else

    return ("?");

}

The above is the whole content of this article, and I hope everyone can like it.


Related articles: