#include #include using namespace std; struct Articol { char * titlu; char * text; }; void citire(Articol *articol, const char nume_fisier[]) { FILE * f = fopen(nume_fisier); char line[100]; fgets(line, 100, f); articol->titlu = malloc(strlen(line) + 1); strcpy(articol->titlu, line); // asemanator citesti si textul fclose(f); } int nr_cuvinte(const char sir[]) { int cnt = 0; int n = strlen(sir); for(int i = 0; i < n; i++) if(sir[i] == ' ') cnt++; return cnt; } int cmp(const void * a, const void * b) { int n = strlen(a->titlu), m = strlen(b->titlu); int minLength; if(n < m) minLength = n; else minlength = m; for(int i = 0; i < minLength; i++) { if(a[i] < b[i]) return -1; if(a[i] > b[i]) return 1; } if(n < m) return -1; if(n > m) return 1; return nr_cuvinte(a->text) - nr_cuvinte(b->text); } int main() { Articol articole[10]; citire(&articol[0], "Nasa.txt"); citire(&articol[1], "UPB.txt"); citire(&articol[2], "UB.txt"); qsort(articole, 3, sizeof(Articol), cmp); return 0; }