⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 65.c

📁 这是一个经过本人一个月的时间自己做的关于c的小程序
💻 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 + -