如果遇到『#』,表示後退一格,即前一字元無效,如果遇到@,表示前一單詞無效,即退出到空格或所在行頭為止。採用棧實現。輸入:whli##ilr#e(s#*s++)
輸入包含若干行,由各種字元構成。
輸出:while(*s++)
利用描述規則輸出最後的文字內容。
seqstack.h
#ifndef _seqstack_h_
#define _seqstack_h_
#include#includeusing namespace std;
typedef char elemtype;
#define stack_max_size 20
typedef struct stack
stack;
void initstack(stack *stack);
bool isfull(stack *stack);
bool isempty(stack *stack);
bool push(stack *stack,elemtype x);
elemtype pop(stack *stack,elemtype *x);
bool show_stack(stack *stack);
elemtype gettop(stack *stack,elemtype *x);
void clear(stack *stack);
void destroy(stack *stack);
#endif //_seqstack_h_
seqstack.cpp
#include"seqstack.h"
void initstack(stack *stack)
bool isfull(stack *stack)
bool isempty(stack *stack)
bool push(stack *stack,elemtype x)
elemtype gettop(stack *stack,elemtype *x)
bool show_stack(stack *stack)
void destroy(stack *stack)
elemtype pop(stack *stack,elemtype *e)
main.cpp
#include"seqstack.h"void lineedit()
ch = getchar();
} while(st.top>0)
cout<<"now:";
while(st2.top>0)
{ pop(&st2,&e);
cout<
棧 行編輯程式
include include include include typedef char datatype include seqstack.h void lineedit void main void lineedit 行編輯程式 ch getchar 讀入下乙個字元 while stackemp...
DS 行編輯程式
題目描述 乙個簡單的行編輯程式的功能是 接收使用者從終端輸入的程式或資料,並存入使用者的資料區。由於使用者在終端上進行輸入時,不能保證不出差錯,因此,若在編輯程式中,每接收乙個字元即存入使用者資料區 的做法顯然不是很恰當。較好的做法是,設立乙個輸入緩衝區,用以接收使用者輸入的一行字元,然後逐行存入使...
C語言資料結構 棧 行編輯程式
順序棧標頭檔案 seqstack.h include include define stacksize 100 typedef char datatype typedef struct seqstack void initstack seqstack s 初始化棧 int stackempty se...