CCF -

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CCF -相关的知识,希望对你有一定的参考价值。

 

#include<iostream>
#include<cstring>
#include<string>
#include<vector>
#include<map>
using namespace std;
void spilt(vector<string>& v, char s[], char t[])
{
    char *sp;
    sp=strtok(s,t);
    while(sp)
    {
        v.push_back(sp);
        sp=strtok(NULL,t);
    }
}
void mygetline(char pc[])
{
    char c;
    while((c=getchar())!=\n&&c!=EOF)
        *pc++=c;
    *pc=\0;
}
int main()
{
    string format;
    char s[257];
    int i,j,n;
    cin>>format>>n;
    getchar();
    for(i=1;i<=n;i++)
    {
        vector<string> sv;
        map<string,string> m;
        mygetline(s);
        // 切分命令行:命令和各个参数分开
        spilt(sv,s," ");
        // 处理各个参数,放入map变量m中
        for(j=1;j<(int)sv.size();j++)
        {
            // 判断是否是选项,选项则处理
            if(sv[j].size()==2&&sv[j][0]==-) 
            {
                int pos=format.find(sv[j][1]);
                // 选项在格式中未找到则出错结束
                if(pos==-1)
                    break;
                // 选项未出现过则添加
                if(m.find(sv[j])==m.end())
                    m[sv[j]]="";
                // 更新参数:后出现优先
                if(format[pos+1]==:&&j+1<(int)sv.size())
                {
                    m[sv[j]]=sv[j+1];
                    j++;
                }
            }
            else
                break;
        }
        cout<<"Case "<<i<<":";
        for(map<string,string>::iterator iter=m.begin();iter!=m.end();iter++)
        {
            cout<<" "<<iter->first;
            if(iter->second!="")
                cout<<" "<<iter->second;
        }
        cout<<endl;
    }
    return 0;
}

 

以上是关于CCF -的主要内容,如果未能解决你的问题,请参考以下文章

ccf考试400分有用吗

2022 ccf c时间

2021 CCF颁奖典礼隆重举行

CCF简介[转]

CCF网站提供的资源

回望中国计算机学会CCF十大历史贡献