自己编写行编辑器

本文介绍了如何编写一个行编辑器,该编辑器允许用户在输入行时通过添加#删除字符,使用@删除整行。编辑器利用栈来存储数据,主要操作包括入栈、出栈和清零。通过结构体定义栈,并实现相应的功能函数,最终实现能够将错误的输入修正为'welcome'的目标字符串。
摘要由CSDN通过智能技术生成

        行编辑器的功能是这样的:当我们在书写一行字符的时候,如果发现某个字符打错,我们在字符后面添加一个#,可以删除这个字符,行编辑器是不让使用退格符的。如果发现写的一行都不是自己想要的,可以添加@删去@前面的一行字符。

        当我们输入一行字符时,电脑将这些数据储存在栈区,当我们写错要删除一个字符时,字符就要出栈,如果整行重写,我们要将栈清零。如此分析我们对栈可做的操作主要有1:入栈2:出栈3:清零          不可少的当然还有4:对栈的初始化

       栈是存储数据的地方,因此自己在编写时可以开辟一个内存空间s[ ]来起到栈的存储作用。我们还知道对栈的各种操作,如出栈,入栈,都是在对栈顶元素进行操作,因此对栈的描述还包括栈顶元素。

        因此一个栈的描述包括存储空间和栈顶元素,由此我们可以用结构体struct  stack{ char  s[45], int  top};来定义我们的栈。在数据结构定义完成后,我们可以定义各种函数对栈进行操作。如定义void  push(struct  stack  *sp, char  c);完成入栈工作;

                           定义void   pop(struct  stack  *sp);完成出栈工作;

                           定义void    ClearStack(struct   stack   *sp)完成清零工作;

                           用void     init(struct  stack  *sp)进行初始化;#

         最后一个函数int   isEmpty(struct   stack  

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值