Pagini recente » Cod sursa (job #774117) | Cod sursa (job #2980740) | Cod sursa (job #748537) | Cod sursa (job #2043364) | Cod sursa (job #1353674)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int comparare(char cuvant[], int lungime, char vector[256][1024]){
int i;
for(i = 0; i < lungime; i++)
if(strcmp(cuvant, vector[i]) == 0)
return 0;
return 1;
}
int main(void){
freopen("convertor.in", "r", stdin);
freopen("convertor.out", "w", stdout);
char buffer[1024];
char auxiliar[1024];
//Parsare dupa ,
char *tokenVirgula;
char *end_Virgula;
//Parsare dupa :
char auxPuncte[1024];
char *tokenPuncte;
char *end_Puncte;
//Parsare dupa "
char auxGhilimele[1024];
char *tokenGhilimele;
char *end_Ghilimele;
//Retinem elementele
int semHeader = 0;
int semAfisare = 0;
char header[256][1024];
char contents[256][1024];
int contHeader = 0, contCont = 0;
int i;
while(gets(buffer)){
strcpy(auxiliar, buffer);
tokenVirgula = strtok_r(auxiliar, ",", &end_Virgula);
while(tokenVirgula != NULL){
// printf("%s\n", tokenVirgula);
strcpy(auxPuncte, tokenVirgula);
tokenPuncte = strtok_r(auxPuncte, ":", &end_Puncte);
strcpy(auxGhilimele, tokenPuncte);
if(auxGhilimele[0] != '"'){
int sem = 2;
tokenGhilimele = strtok_r(auxGhilimele, "\"", &end_Ghilimele);
while(tokenGhilimele != NULL){
if(sem == 1){
if(comparare(tokenGhilimele, contHeader, header) == 1){
strcpy(header[contHeader++], tokenGhilimele);
}
else
semHeader = 1;
// printf("%s\n", header[contHeader - 1]);
sem = 0;
break;
}
tokenGhilimele = strtok_r(0, "\"", &end_Ghilimele);
sem--;
}
}
else{
tokenGhilimele = strtok_r(auxGhilimele, "\"", &end_Ghilimele);
if(comparare(tokenGhilimele, contHeader, header) == 1){
strcpy(header[contHeader++], tokenGhilimele);
}
else
semHeader = 1;
// printf("%s-\n", header[contHeader - 1]);
}
// }
// while(tokenPuncte != NULL){
// tokenPuncte = strtok_r(0, ":", &end_Puncte);
// }
tokenVirgula = strtok_r(0, ",", &end_Virgula);
if(semAfisare == 0 && semHeader == 1){
for(i = 0; i < contHeader; i++)
printf("%s,", header[i]);
semAfisare = 1;
}
}
}
return 0;
}