Cod sursa(job #1347958)

Utilizator mateinMatei Nistor Ionut matein Data 19 februarie 2015 13:21:10
Problema Convertor Scor 100
Compilator c Status done
Runda rosedu_cdl_2015 Marime 2.1 kb
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

int main () {

	int i, flag, nr_elem = 0, elem_afisate, nr, cif;
	char linie[1025];
	FILE *f,*g;
	f=fopen( "convertor.in" , "r" );
	g=fopen( "convertor.out" , "w");

    flag = 0;
	while ( !feof(f) ) {
		fgets ( linie , 1024 , f );
		i = 0;
		while ( i < strlen(linie) && linie[i] != '}') {

			if ( linie[i] == ':' ) {

                nr_elem++;
                i++;
                flag = 1;

			}

            if ( flag == 1) {

                if(linie[i] == ',') {

                    flag = 0;

                }

            }

			if ( linie[i] == '"' && flag == 0) {

				i++;
				while ( linie[i] != '"' ) {

					fprintf ( g , "%c" , linie[i] );
					i++;

				}
				fprintf ( g , "," );


			}
			i++;

	    }
		if( linie[i] == '}' ) {

            break;

		}

	}
	fprintf(g,"\n");
	fseek ( f , 0 , SEEK_SET );
	elem_afisate = 0;
	flag = 0;
	while( !feof(f) ) {

		fgets ( linie , 1024 , f );
		i=0;

		while ( i < strlen(linie) && linie[i] != ']') {

			if ( linie[i] == ':' ) {

                flag = 1;
                i++;

			}

			if( flag == 1) {

				while ( linie[i] == ' ' ) {

					i++;

				}
				if ( linie[i] == '"' ) {
                    i++;
					while ( linie[i] != '"' ) {

						fprintf ( g , "%c" , linie[i] );
						i++;

					}
					fprintf ( g , "," );
                    flag = 0;
                    elem_afisate++ ;
                    if ( elem_afisate == nr_elem ) {

                        fprintf (g ,"\n");
                        elem_afisate = 0;

                    }

				}
				if( linie[i]>='0' && linie[i]<='9') {

					while ( linie[i] >= '0' && linie[i] <= '9' ) {

						fprintf(g,"%c",linie[i]);
						i++;

					}
					fprintf ( g , "," );
					flag = 0;
                    elem_afisate++ ;
                    if ( elem_afisate == nr_elem ) {

                        fprintf (g ,"\n");
                        elem_afisate = 0;

                    }

				}


			}
			i++;

		}
        if(linie[i] == ']') {

            break;

        }

	}
	fclose (f);
	fclose (g);
	return 0;
}