?? 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 + -