Cod sursa(job #1348777)

Utilizator gabriel93Robu Gabriel gabriel93 Data 19 februarie 2015 20:57:35
Problema Convertor Scor 100
Compilator cpp Status done
Runda rosedu_cdl_2015 Marime 1.26 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;


void parse(string s, ofstream &fout){
    int i = 0;
    if( s.find_first_of('[') != string::npos ) {
        do {
            string key;

            i = s.find('"',i);
            key = s.substr(i+1,s.find('"',i+1)-i-1);
            if (!key.empty()){
                fout<<key<<',';
                i = s.find(',',i);
            }
        }while(i != string::npos);
        fout << '\n';
    }

	i = s.find(':',0);
	while( i != string::npos) {
        string key;

        i = s.find_first_not_of(" \n",i+1);
        if(s[i] == '"')
            key = s.substr(i+1,s.find('"',i+1)-i-1);
        else
            key = s.substr(i,s.find_first_of(",\n ",i+1)-i);
        fout << key <<',';
        i = s.find(':',i);
	}
	fout << '\n';
}


int main(){
	ifstream f("convertor.in");
	ofstream g("convertor.out");

	vector<string> keys;
	vector<string> values;
	string sir;
	while(!f.eof()){ // To get you all the lines.

		getline(f,sir,'}');
	    //cout<<sir<<endl;
	    int a=sir.find_last_of("]");
	    if ( !sir.empty() && a == string::npos ){
	       	parse(sir, g);
	     //   cout<<sir<<endl;
	    }

    }
	f.close();
	g.close();

	return 0;
}