Saturday, February 26, 2011

444 - Encoder and Decoder


#include<stdio.h>
#include<string.h>
#include<ctype.h>

void strRev(char str[]);

int main()
{
    char instr[5000],outstr[5000];
    int i,k,n;
    //freopen("in.txt","r",stdin);

    while(gets(instr))
    {
        k=0;
        strRev(instr);
        if(isdigit(instr[0]))
        {
            n=0;
            for(i=0;instr[i];i++)
            {
                n=n*10+instr[i]-48;
                if(n>=32)
                    outstr[k++]=n,n=0;
            }
        }
        else
        {
            for(i=0;instr[i];i++)
            {
                n=instr[i];
                while(n)
                {
                    outstr[k++]=n%10+48;
                    n=n/10;
                }
            }
        }
        outstr[k]='\0';
        printf("%s\n",outstr);
    }
    return 0;
}

void strRev(char str[])
{
    int i,len=strlen(str),n=len/2;
    for(i=0;i<n;i++)
    {
        str[i]=str[i]^str[len-i-1];   
        str[len-i-1]=str[i]^str[len-i-1];
        str[i]=str[i]^str[len-i-1];
    }
}

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.