problem description
乙個簡單的行編輯程式的功能是:接受使用者從終端輸入的程式或資料,並存入使用者的資料區。
由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,「每接受乙個字元即存入使用者資料區」的做法顯然不是最恰當的。較好的做法是,設立乙個輸入緩衝區,用以接受使用者輸入的一行字元,然後逐行存入使用者資料區。允許使用者輸入出差錯,並在發現有誤時可以及時更正。例如,當使用者發現剛剛鍵入的乙個字元是錯的時,可補進乙個退格符"#",以表示前乙個字元無效;
如果發現當前鍵入的行內差錯較多或難以補救,則可以鍵入乙個退行符"@",以表示當前行中的字元均無效。
如果已經在行首繼續輸入'#'符號無效。
input
輸入多行字串行,行字元總數(包含退格符和退行符)不大於250。
output
按照上述說明得到的輸出。
example input
whli##ilr#e(s#*s)outcha@putchar(*s=#++);
example output
while(*s)putchar(*s++);
code://水題
#include#include#include#define stack_init_size 100
#define stackincrement 10
#define overload -2
#define error 0
#define ok 1
typedef char elemtype;
typedef struct
sqstack;
void initstack(sqstack &s)//初始化棧
s.top = s.base;
s.stacksize = stack_init_size;
}int gettop(sqstack s, elemtype &e)
void push(sqstack &s, elemtype e)//入棧
*s.top++ = e;
}int pop(sqstack &s, elemtype &e)//出棧,並將元素賦給e
int main()
{ sqstack li;
initstack(li);
elemtype e;
char s[300];
while(~scanf("%s", s))
{initstack(li);
int i, len = strlen(s);
for(i = 0; i
資料結構實驗之棧與佇列九 行編輯器
problem description由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,每接受乙個字元即存入使用者資料區 的做法顯然不是最恰當的。較好的做法是,設立乙個輸入緩衝區,用以接受使用者輸入的一行字元,然後逐行存入使用者資料區。允許使用者輸入出差錯,並在發現有誤時可以及時...
資料結構實驗之棧與佇列九 行編輯器
problem description 由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,每接受乙個字元即存入使用者資料區 的做法顯然不是最恰當的。較好的做法是,設立乙個輸入緩衝區,用以接受使用者輸入的一行字元,然後逐行存入使用者資料區。允許使用者輸入出差錯,並在發現有誤時可以及...
資料結構實驗之棧與佇列九 行編輯器
time limit 1000 ms memory limit 65536 kib submit statistic problem description 由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,每接受乙個字元即存入使用者資料區 的做法顯然不是最恰當的。較好的做法是,...