• 编译原理实验一


    #include <iostream>
    #include <cstdio>
    #include <string>
    #include <vector>
    using namespace std;
    
    int Vt[30],Vn[30];
    
    vector<string> P;
    
    //char str[100];
    
    int tl,nl;
    
    void init()
    {
        tl=nl=0;
    }
    
    void split(string str,string p)
    {
        int i;
        if(str=="") return;
        str+=p;
        int len = str.size();
        int pos = str.find(p);
        cout<<str<<endl;
    
        while(pos!=len-1)
        {
            string x = str.substr(0,pos);
            P.push_back(x);
            str = str.substr(pos+1,len);
            pos = str.find(p);
            //cout<<x<<endl<<str<<endl;
        }
    }
    
    void test()
    {
        P.push_back("a");
    }
    
    void input()
    {
        int i,len;
        string str;
        while(getline(cin,str) && str[0]!='q')
        {
            //len = strlen(str);
            //cout<<"a"<<len<<endl;
            len = str.size();
            for(i =0;i<len;i++)
            {
                if(str[i]<='z' && str[i]>='a') Vt[str[i]-'a']++;
                else if(str[i]!='S' && str[i]<='Z' && str[i]>='A') Vn[str[i]-'A']++;
            }
            split(str,",");
            //test();
        }
    }
    
    void output()
    {
        int i;
        cout<<"(Vt={";
        for(i=0;i<26;i++)
        {
            if(Vt[i])
            {
                cout<<(char)('a'+i);i++;break;
            }
        }
        for(;i<26;i++)
        {
            if(Vt[i]) cout<<","<<(char)('a'+i);
        }
        cout<<"},Vn={S";
        for(i=0;i<26;i++)
        {
            if(Vn[i]) cout<<","<<(char)('A'+i);
        }
        cout<<"},P={";
        for(vector<string>::iterator it = P.begin(); it!=P.end();)  
        {    
            cout<<","<<*(it);it++;
        }
        cout<<"},S)"<<endl;
    }
    
    int main()
    {
        init();
        input();
        output();
        return 0;
    }
  • 相关阅读:
    bootstrap class sr-only 什么意思?
    PHP 中的文本截取分析之效率
    FastAdmin 升级后出现 is already in use
    FastAdmin 环境变量 env 配置
    Nginx 服务器伪静态配置不当造成 Access denied
    笔记:明确认识
    进程通信(socket)
    进程间通信(了解)
    c++ 继承,组合
    c++ 类初始化
  • 原文地址:https://www.cnblogs.com/qlky/p/6555375.html
Copyright © 2020-2023  润新知