ural 1993 This cheeseburger you don't need

顺次存到{} 【】 () 遇到逗号就处理下,最后处理逗号之后的


 

#include <iostream>

#include <cstring>

#include <string>

#include <cstdio>

#include <cmath>

#include <algorithm>

#include <vector>

#include <queue>

#include <map>

#define inf 0x3f3f3f3f

typedef __int64 ll;

using namespace std;



char ob[105],sub[105],veb[105],s[105];

int flag,i,l,o,sb,v,j,first;



int main()

{

    while(gets(s)!=NULL)

    {

        flag=0;

        first=1;

        i=o=sb=v=0;

        l=strlen(s);

        for(i=0;i<l;i++)

        {

            if(s[i]=='(')//sub

            {

                i++;

                while(i<l&&s[i]!=')')

                {

                    sub[sb++]=s[i++];

                }

            }



            else if(s[i]=='{')//ob

            {

                i++;

                while(i<l&&s[i]!='}')

                {

                    ob[o++]=s[i++];

                }

            }

            else if(s[i]=='[')//verb

            {

                i++;

                while(i<l&&s[i]!=']')

                {

                    veb[v++]=s[i++];

                }

            }

            else

            {

                if(s[i]==',')

                {

                    for(j=0;j<o;j++)

                    {

                        if(first)

                        {

                            if(ob[0]>='a'&&ob[0]<='z')

                            {

                                putchar(ob[0]-32);

                            }

                            else putchar(ob[0]);

                            first=0;

                            continue;

                        }

                        putchar(ob[j]);

                    }

                    putchar(' ');

                    o=0;

                    for(j=0;j<sb;j++)

                    {

                        if(j==0&&sub[0]<='Z'&&sub[0]>='A')

                            putchar(sub[j]+32);

                        else putchar(sub[j]);

                    }

                    putchar(' ');

                    sb=0;

                    for(j=0;j<v;j++)

                    {

                        if(j==0&&veb[0]<='Z'&&veb[0]>='A')

                            putchar(veb[j]+32);

                        else putchar(veb[j]);

                    }

                    v=0;

                    //处理已经存了的 然后清零

                    putchar(',');

                    i++;

                    while(s[i]!='{'&&s[i]!='('&&s[i]!='[')

                    {

                        if(i<l){

                            putchar(s[i]);

                            i++;

                        }

                        else

                        {

                            flag=1;

                            break;

                        }

                    }

                    i--;

                }

              //  if(flag) break;

            }

        }

        if(o||sb||v)

        {

            for(j=0;j<o;j++)

            {

                if(first)

                {

                    if(ob[0]>='a'&&ob[0]<='z')

                    {

                        putchar(ob[0]-32);

                    }

                    else putchar(ob[0]);

                    first=0;

                    continue;

                }

                putchar(ob[j]);

            }

            putchar(' ');

            o=0;

            for(j=0;j<sb;j++)

            {

                if(j==0&&sub[0]<='Z'&&sub[0]>='A')

                    putchar(sub[j]+32);

                else putchar(sub[j]);

            }

            putchar(' ');

            sb=0;

            for(j=0;j<v;j++)

            {

                if(j==0&&veb[0]<='Z'&&veb[0]>='A')

                    putchar(veb[j]+32);

                else putchar(veb[j]);

            }

            v=0;

        }

        putchar('\n');

    }

    return 0;

}


 

 

你可能感兴趣的:(this)