让编程改变世界
Change the world by program
空字符串:
输入“a”:a
输入“b”:ab
输入“c”:abc
输入“d”:abcd
删除一个字符:abc
删除一个字符:ab
删除一个字符:a
删除一个字符:
可以看出在字符串输入的过程中,字符的输入和输出是按照栈的访问规则进行的,即后进先出。 这样,我们就可以用栈的方式来管理字符串的存储空间,也就是说,字符串的存储空间实际上是一个字符栈。 字符栈中的所有字符,从栈底到栈顶,组成一个字符串。调用int 16h读取键盘输入;
如果是字符,进入字符栈,显示字符栈中的所有字符;继续执行① ;
如果是退格键,从字符栈中弹出一个字符,显示字符栈中的所有字符;继续执行① ;
如果是Enter 键,向字符栈中压入0,返回。
从程序的处理过程中可以看出,字符栈的入栈、出栈和显示栈中的内容,是需要在多处使用的功能,我们应该将它们写为子程序。 子程序: 字符栈的入栈、出栈和显示。 参数说明: (ah)=功能号,0表示入栈,1表示出栈,2表示显示; ds : si 指向字符栈空间; 对于0 号功能:(al)=入栈字符; 对于1 号功能:(al)=返回的字符; 对于2 号功能:(dh)、(dl) =字符串在屏幕上显示的行、列位置。 字符栈的访问规则如下所示: (1)栈空 (2)“a”入栈 (3)“b”入栈 子程序代码:相关代码下载 另外一个要注意的问题是: 显示栈中字符的时候,要注意清除屏幕上上一次显示的内容。 我们现在写出完整的接收字符串输入的子程序。 参考源码:相关代码下载 [buy] 获得所有教学视频、课件、源代码等资源打包 [/buy] [Downlink href='http://kuai.xunlei.com/d/LBZPNEUZNHOJ']视频下载[/Downlink]