Si quiero insertar un carácter en una posición específica en la matriz de caracteres, ¿alguien puede decirme el algoritmo? ¡Muchas gracias!
Esto implica mantener dinámicamente la matriz, generalmente primero haciendo una evaluación inicial basada en el tamaño de cada incremento de la cadena que almacena y predeterminando un tamaño de caché para reducir la necesidad de agregar nuevos caracteres o caracteres cada vez. Asegúrese de mantener un poco más la cantidad de ajustes al programa de sincronización de cuerdas. Por supuesto, el tamaño del incremento del paso no puede ser demasiado grande. Si el espacio reservado es demasiado grande, ocupará memoria, por lo que el equilibrio debe elegirse adecuadamente.
Por ejemplo, según la evaluación de la demanda, es más apropiado agregar 100 caracteres cada vez, luego la definición de macro StepSize 100, es decir, agregar 100 caracteres cada vez y luego inicializarlo primero:
char * pBuff=new char[StepSize];
Cuando su programa inserta nuevos caracteres o nuevas cadenas. Puede escribir una función Cambiar tamaño para ajustar el espacio de caché y una función Insertar que llame a la función Cambiar tamaño para expandir el espacio cuando sea necesario.
Las ideas para ajustar el espacio de caché e insertar caracteres son las siguientes:
1. Vuelva a calcular el nuevo tamaño de memoria real requerido y el espacio reservado y, finalmente, calcule el tamaño total de NewSize.
2. Haga una copia de seguridad de la dirección de memoria original para su lanzamiento final.
char *tp=pBuff;
3. Reasignar espacio de memoria
char *pBuff =new char[NewSize];
4 Calcule el punto de inserción del nuevo carácter y la longitud de la nueva cadena
5. Utilice la función de copia de cadena para copiar todos los caracteres antes del punto de inserción al nuevo caché
6. el nuevo En el caché, los nuevos caracteres o cadenas se copian a partir del punto de inserción.
7. Después del punto de inserción, copie la cadena restante en el caché original al final del nuevo caché (comenzando desde la longitud aumentada + el punto de inserción).
8. Calcule y registre nuevamente la longitud efectiva de los caracteres.
9. Liberar el caché original
eliminar []tp;tp=null;
Después de completar los pasos anteriores, puede insertar nuevos caracteres en el original. caché de caracteres y ampliar el tamaño del caché según las necesidades reales.
Es mejor resumirlo con una clase. Espero que te sea útil.