기술
간단한 라인 편집 프로그램의 기능은 사용자가 입력 한 프로그램 또는 데이터를 단말기에서 받아 사용자의 데이터 영역에 저장하는 것입니다.
사용자가 단말기에 입력 할 때 실수가 없다는 것을 보장 할 수 없기 때문에 편집 프로그램에서 "사용자 데이터 영역에 각 문자를 저장"하는 것은 분명히 가장 적절하지 않습니다. 더 나은 방법은 사용자가 입력 한 문자 줄을 받아들이도록 입력 버퍼를 설정 한 다음 사용자 데이터 영역에 한 줄씩 저장하는 것입니다. 오류가 발견되면 사용자가 오류를 입력하고 정정 할 수 있습니다. 예를 들어, 사용자가 방금 입력 한 문자가 잘못되었음을 발견하면 백 스페이스 문자 "#"을 추가하여 이전 문자가 유효하지 않음을 나타낼 수 있습니다.
현재 줄에 오류가 너무 많거나 수정하기 어려운 경우 백 라인 문자 "@"를 입력하여 현재 줄의 문자가 모두 유효하지 않음을 나타낼 수 있습니다.
이미 줄의 시작 부분에있는 경우 '#'기호를 계속 입력하는 것은 유효하지 않습니다.
입력
여러 줄 문자 시퀀스를 입력하고 총 줄 문자 수 (백 스페이스 및 백 스페이스 문자 포함)는 250 개 이하입니다.
산출
출력을 얻으려면 위의 지침을 따르십시오.
견본
입력
whli ## ilr # e (s # * s)
outcha @ putchar (* s = # ++);
산출
while (* s)
putchar (* s ++);
제출 솔루션
#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;
}