ex6.栈的应用:文字输入模拟(有错误未解决)

#define STACK_INIT_SIZE 100
#define STACKINCREMENT 10
#include<stdio.h>
#include<stdlib.h>
typedef char SElemType;
typedef struct{
    SElemType *base,*top;
    int stacksize;
}SqStack;
int InitStack(SqStack &S)
{
    S.base = (SElemType*)malloc(sizeof(SElemType) * STACK_INIT_SIZE);
    if(!S.base) exit(-2);
    S.base = S.top;
    S.stacksize = STACK_INIT_SIZE;
    return 1;
}//
int GetTop(SqStack S,SElemType &e)
{
    if(S.base == S.top) return -1;
    e = *(S.top-1);
    return 1;
}
int Push(SqStack &S,SElemType e)
{
    if(S.top - S.base >= S.stacksize)
    {
        S.base = (SElemType*)realloc(S.base,sizeof(SElemType) * (STACKINCREMENT + S.stacksize));
        if(!S.base) exit(-2);
        S.top = S.base + S.stacksize;
        S.stacksize += STACKINCREMENT;
    }
    *S.top++ = e;
    return 1;
}
int Pop(SqStack &S,SElemType &e)
{
    if(S.top <= S.base) return -1;
    e = *(--S.top);
    return 1;
}
int ClearStack(SqStack &S)
{
    S.top = S.base ;
    return 1;
}
void ShowStack(SqStack S)
{
    SElemType e;
    while(S.top > S.base)
    {
        Pop(S,e);
        printf("%c",e);
    }
}
int DestoryStack(SqStack &S)
{
    free(S.base);
    S.base = NULL;
    S.top = NULL;
    S.stacksize = 0;
}
void LineEdit()
{
    printf("欢迎进入文字输入练习系统:\n");
    SqStack S;
    InitStack(S);
    char i = getchar();
    Push(S,i);

    // char temp;
    // char ch = getchar();
    // while(ch != EOF)
    // {
        // while(ch != EOF && ch != ‘\n‘)
        // {
            // switch(ch){
                // case ‘#‘:Pop(S,temp);break;
                // case ‘@‘:ClearStack(S);break;
                // default : Push(S,ch);break;
            // }
            // ch = getchar();
        // }
        // ClearStack(S);
        // if(ch != EOF) ch = getchar();
    // }
    //DestoryStack(S);
}

int main()
{
    LineEdit();
    return 1;
}
    

#define STACK_INIT_SIZE 100#define STACKINCREMENT 10#include<stdio.h>#include<stdlib.h>typedef char SElemType;typedef struct{SElemType *base,*top;int stacksize;}SqStack;int InitStack(SqStack &S){S.base = (SElemType*)malloc(sizeof(SElemType) * STACK_INIT_SIZE);if(!S.base) exit(-2);S.base = S.top;S.stacksize = STACK_INIT_SIZE;return 1;}//int GetTop(SqStack S,SElemType &e){if(S.base == S.top) return -1;e = *(S.top-1);return 1;}int Push(SqStack &S,SElemType e){if(S.top - S.base >= S.stacksize){S.base = (SElemType*)realloc(S.base,sizeof(SElemType) * (STACKINCREMENT + S.stacksize));if(!S.base) exit(-2);S.top = S.base + S.stacksize;S.stacksize += STACKINCREMENT;}*S.top++ = e;return 1;}int Pop(SqStack &S,SElemType &e){if(S.top <= S.base) return -1;e = *(--S.top);return 1;}int ClearStack(SqStack &S){S.top = S.base ; return 1;}void ShowStack(SqStack S){SElemType e;while(S.top > S.base){Pop(S,e);printf("%c",e);}}int DestoryStack(SqStack &S){free(S.base);S.base = NULL;S.top = NULL;S.stacksize = 0;}void LineEdit(){printf("欢迎进入文字输入练习系统:\n");SqStack S;InitStack(S);char i = getchar();Push(S,i);    // char temp;// char ch = getchar();// while(ch != EOF)// {// while(ch != EOF && ch != ‘\n‘)// {// switch(ch){// case ‘#‘:Pop(S,temp);break;// case ‘@‘:ClearStack(S);break;// default : Push(S,ch);break;// }// ch = getchar();// }// ClearStack(S);// if(ch != EOF) ch = getchar();// } //DestoryStack(S);}
int main(){LineEdit();return 1;}

时间: 2024-10-14 05:01:33

ex6.栈的应用:文字输入模拟(有错误未解决)的相关文章

语音输入和文字输入动画切换

随着语音的快速普及,很多应用都开始增加语音输入功能.下面是一个简单的语音和文字输入的动画切换: 布局文件: <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" &g

关于WinIO.DLL的键盘输入模拟

关于WinIO.DLL的键盘输入模拟 最近在找键盘模拟的方式,最后在网上找到了一个WinIO.DLL的IO键盘模拟按键的方式.但是居然那个方法是有问题的.我造了全局的hook监视键盘信息,发现它只是有keyDown和keyPress的消息,keyUp的信息是up了一个zoom的键. 搞了2天终于找到了正确的方式,以下是代码(使用需要winIo.dll,winIo.vxd,winIo.sys):     public class WinIOLab    {        private const

动画语音输入和文字输入开关

随着演讲的迅速普及,很多应用都开始添加语音输入.下面是一个简单的语音和文字输入的动画切换: 布局文件: <ViewFlipper android:id="@+id/viewFlipper1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" >

[CSS]复选框单选框与文字对齐问题的研究与解决.

前言:今天碰到的这个问题, 恰好找到一个很好的博文, 在这里转载过来 学习下. 原文地址:复选框单选框与文字对齐问题的研究与解决. 目前中文网站上面的文字,就我的个人感觉而言,绝大多数网站的主流文字大小为12px,因为在目前高分辨率显示器屏幕下,11px的汉字,其像素点开始不规整,文字不如12px来的显示良好.12px大小的文字就是主流也是底线.然而12px的文字与单选框和复选框是不对齐的.例如下面这张雅虎中国首页在火狐浏览器下的截图: 雅虎中国首页单选框复选框与文字不对齐 这里,不是说,雅虎中

文档大师 搜狗拼音无法输入汉字_乱码的解决方法_VB6程序

文档大师用 搜狗拼音无法输入汉字,显示的内容和输入的内容不一致.解决方法: 把中文输入里面的那个“美式键盘”再删掉就好用了,只保留搜狗输入法即可!

Appium和Robotium在文字输入上的区别

近来在学习研究移动平台 自动化测试时发现Appium和Robotium在对文本框进行输入时有一定的区别: Appium在输入文字时需要调用系统键盘 Robotium在输入文字是根本不需要调出键盘,文字很快速的就输入完成,感觉不是输入的,而是Copy&Paste 我个人认为造成这种区别的原因应该如下(源码分析验证:TBD): Appium是基于UIAutomator框架实现的.Appium测试进程与目标应用进程是分开的,所以Appium不能直接访问目标应用的各种element属性进行copy&

Android:EditText限制文字输入

Android的编辑框控件EditText在平常编程时会经常用到,有时候会对编辑框增加某些限制,如限制只能输入数字,最大输入的文字个数,不能输入一些非法字符等,这些需求有些可以使用android控件属性直接写在布局xml文件里,比如android:numeric="integer"(只允许输入数字): 对于一些需求,如非法字符限制(例如不允许输入#号,如果输入了#给出错误提示),做成动态判断更方便一些,而且容易扩展: 在Android里使用TextWatcher接口可以很方便的对Edi

使用JQuery统计input和textarea文字输入数量代码

本文主要介绍了jQuery实现统计输入文字个数的方法,需要的朋友可以参考下. HTML部分: <input type="text" value="我是输入的文字" maxlength="10" id="detail1"/> <p><span id="detail1_num">0</span>/<span>10</span></p&

【Windows 10 应用开发】输入模拟

---恢复内容开始--- Input Injection 直译为:输入注入.通俗的译法为:模拟输入.此注入行为可以模拟以下几种输入行为: 1.键盘按键. 2.鼠标. 3.触控. 4.书写笔输入. 5.快捷键.这个有限制,仅限于如按 Win 键.后退键. 支持输入行为注入的API都在 Windows.UI.Input.Preview.Injection 命名空间下,命名空间带有 [Preview]字样,估计这个功能还在试运行阶段. 这个所谓的注入功能,简单地说就是可以在UWP应用中模拟键盘输入.鼠