Utilice C urgentemente para implementar el programa de conversión de caracteres chinos a Pinyin
Se utilizan dos estructuras de datos importantes en el método de entrada, a saber, PY_NODE y PY_SUBNODE. Cada PY_NODE corresponde a una combinación de teclas numéricas y PY_SUBNODE corresponde a un conjunto de combinaciones pinyin. Dado que una combinación de números puede corresponder a múltiples combinaciones pinyin (por ejemplo, "226" corresponde a "ban", "bao", "can" y "cao"), estas dos estructuras implementan una tabla de correspondencia de dos niveles.
PY_NODE está organizado como un árbol, mientras que PY_SUBNODE está organizado como una lista doblemente enlazada. La relación básica entre los dos se muestra en la Figura 1.
Las siguientes son las definiciones de las dos estructuras:
typedef struct py_node{
unsigned int son[8] //corresponde a los siguientes 2~; 9 entrada clave El número de ID del PY_NODE al que se debe transferir
unsigned int Father; //El número de ID del nodo principal
struct py_subnode *ptrpy; el primer subordinado PY_SUBNODE
p>}PY_NODE;
typedef rom struct py_subnode{
unsigned char py[7] // La cadena pinyin de este nodo
struct py_subnode *prev; //Puntero al PY_SUBNODE anterior
struct py_subnode *next; //Puntero al siguiente PY_SUBNODE
unsigned char *ptrUnicode; //Apunta al nodo correspondiente Puntero a la tabla de códigos Unicode
}PY_SUBNODE;
Hay 412 combinaciones en la tabla Pinyin china a la que nos referimos en el diseño, por lo que debe haber 412 PY_SUBNODE en el sistema. Una correspondencia; *** Se han establecido 250 PY_NODE en el sistema. El trabajo de establecer esta parte de los datos es relativamente tedioso y se divide en los siguientes 5 pasos:
1 Agrupar los caracteres chinos según pinyin, ordenarlos por grado de uso común y convertir los caracteres chinos. en códigos Unicode o códigos estándar nacionales, según el tipo de código. Depende de los requisitos del sistema.
2. Convierta combinaciones de valores de pinyin válidos en el teclado numérico, como pinyin "cui" en valor numérico "284". estos valores corresponden a parte de PY_NODE;
3. Agregue el PY_NODE medio para representar pinyin que no es válido pero es válido para entradas posteriores, como "b", "c", "don", "dua" y otros nodos;
4. Cambie la clave numérica. Los mismos PY_SUBNODE se combinan en una lista vinculada y el puntero ptrpy en un determinado PY_NODE apunta al encabezado de la lista;
5. Presione la relación de la combinación de teclas numéricas para formar un árbol de PY_NODE.
La relación organizativa que se muestra en la Figura 1 no es complicada, pero la carga de trabajo no es pequeña. Generalmente, se puede escribir un programa de conversión para establecerla automáticamente. La Figura 2 es un fragmento de la estructura de datos del método de entrada Pinyin.
Al cambiar el PY_NODE actual, generalmente debe ir acompañado de algunas operaciones de visualización. Debido a las diferencias en las diferentes aplicaciones, no se darán más explicaciones aquí.
En el nodo actual, puede utilizar una tecla de control específica (como la tecla "#") para seleccionar el PY_SUBNODE subordinado a este PY_NODE para limitar el rango de selección de caracteres chinos.
A continuación se muestran ejemplos