D-Stack y Queue 9 del experimento de estructura de datos: editor de líneas

Descripción

La función de un programa de edición de línea simple es aceptar el programa o los datos ingresados ​​por el usuario desde el terminal y almacenarlos en el área de datos del usuario.

Dado que el usuario no puede garantizar que no habrá errores al ingresar en el terminal, obviamente no es lo más apropiado "almacenar cada carácter en el área de datos del usuario" en el programa de edición. Un mejor enfoque es configurar un búfer de entrada para aceptar una línea de caracteres ingresados ​​por el usuario y luego almacenarlos en el área de datos del usuario línea por línea. Permita a los usuarios ingresar errores y corregirlos a tiempo cuando se encuentren. Por ejemplo, cuando el usuario descubre que un carácter que acaba de escribir es incorrecto, puede agregar un carácter de retroceso "#" para indicar que el carácter anterior no es válido;

Si encuentra que hay demasiados errores en la línea actual o es difícil de solucionar, puede escribir un carácter de línea de fondo "@" para indicar que los caracteres de la línea actual no son válidos.

Si ya está al principio de la línea, continuar ingresando el símbolo '#' no es válido.
Aporte

Ingrese una secuencia de caracteres de varias líneas y el número total de caracteres de línea (incluidos los caracteres de retroceso y retroceso) no supere los 250.
Producción

Siga las instrucciones anteriores para obtener el resultado.
Muestra

Aporte

whli ## ilr # e (s # * s)
outcha @ putchar (* s = # ++);
Producción

while (* s)
putchar (* s ++);
EnviarSoluciones

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int date[255];
int main()
{
    
    int top=-1,i,j,k;
char a[255];
while(gets(a))
{
    
    top=-1;
    k=strlen(a);
    for(i=0;i<k;i++)
    {
    
    
        if(a[i]=='#')
        {
    
    
            if(top>=0)
                top--;
        }
        else if(a[i]=='@')
        {
    
    
            top=-1;
        }
        else
        {
    
    
            date[++top]=a[i];
        }

    }
    for(j=0;j<=top;j++)
    {
    
    
        printf("%c",date[j]);
    }
    printf("\n");
}
    return 0;
}

Supongo que te gusta

Origin blog.csdn.net/a675891/article/details/103946603
Recomendado
Clasificación