📄 65.c
字号:
/*例:利用队列特点设计一个简单的文字编辑器,使具有删除打错字符的功能
约定:‘#’表示删除前面一个字符,
‘@’表示删除前面所有字符
‘*’表示输入结束
*/
#include<stdio.h>
//typedef char datatype;
//#define N 10;
typedef struct node
{
char data[10];
int top;
}seqstrack;
void seqstrack_fun()
{
seqstrack *t;//若此处定义的不是指针形式,就可以不用对t进行空间开辟
char ch;
t=(seqstrack *)malloc(sizeof(seqstrack)); //必须对指针t进行空间开辟,其里面存放队列的值
t->top=-1;
printf("enter the string:\n");
ch=getchar();
while(ch!='0')
{
if(ch=='#')
{
--t->top;
}
else if(ch=='@')
{
t->top=-1;
}
else if(ch=='*')
{
while(t->top!=-1)
{
putchar(t->data[t->top]);
--t->top;
}
}
else
{
t->data[++t->top]=ch;
}
ch=getchar();
}
printf("\n");
}
/*
#include<stdio.h>
#define maxsize 100
typedef char datatype;
typedef struct
{
datatype data[maxsize];
int top;
}seqstack;
setnull(seqstack *s);
seqstack *push(seqstack *s,datatype x);
datatype pop(seqstack *s);
int empty(seqstack *s);
main()
{
seqstack S;
char ch;
setnull(&S);
while((ch=getchar())!='*')
{
switch(ch)
{
case '#': pop(&S);break;
case '@': setnull(&S);break;
default: push(&S,ch);
}
}
if(empty(&S))
printf("栈是空的!");
else
printf("栈顶元素是%c",S.data[S.top]);
}
setnull(seqstack *s)
{s->top=-1;}
seqstack *push(seqstack *s,datatype x)
{
if(s->top==maxsize-1)
{
printf("overflow");
return NULL;
}
else
{
s->top++;
s->data[s->top]=x;
}
return s;
}
int empty(seqstack *s)
{
if(s->top>=0)
return 0;
else
return 1;
}
datatype pop(seqstack *s)
{
if(empty(s))
{ printf("underflow");return NULL;}
else
{s->top--;
return(s->data[s->top+1]);
}
}
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -