Cod sursa(job #1353180)

Utilizator RenataRenata Renata Data 21 februarie 2015 13:49:05
Problema Convertor Scor 100
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 1.47 kb
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
using namespace std;
FILE *g;
void analiza_cuvinte(char sir[],int ok)
{
  char sep[8]={',',':','"','[','{',']','\n'},cuvant[100],
  alfabet[100]="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890";
  char *p;
  int nr=ok;
  p=strtok(sir,sep);
  while(p)
  {
       strcpy(cuvant,p);
       while(cuvant[0]==' ')
        strcpy(cuvant,cuvant+1);
       if(strlen(cuvant)!=0&&strchr(alfabet,cuvant[0]))
         {
           if(nr%2==0)
             {
                 if(strchr(cuvant,'}')==0)
                    fprintf(g,"%s,",cuvant);
                 else
                 {
                      strcpy(cuvant+strlen(cuvant)-1,cuvant+strlen(cuvant));
                      fprintf(g,"%s,\n",cuvant);
                 }
            }

           nr++;
         }
       if(strchr(cuvant,'}')!=0)
        {
            if(ok==0)
                break;
            else
                fprintf(g,"\n");
        }
       p=strtok(NULL,sep);
  }
}
int main ()
{
  FILE *f;
  char *sir,*sir2;
  long lungime_f;
  f=fopen("convertor.in","rb");
  g=fopen("convertor.out","w");

  fseek (f , 0 , SEEK_END);
  lungime_f = ftell(f);
  rewind(f);

  sir=(char*)calloc(1,lungime_f);
  fread (sir,lungime_f,1,f);

  sir2=(char*)calloc(1,lungime_f);
  fclose(f);

  strcpy(sir2,sir);
  analiza_cuvinte(sir,0);
  fprintf(g,"\n");
  analiza_cuvinte(sir2,1);
  fclose(g);
  return 0;
}