Buna!
Cum as putea rezolva urmatoarea problema?
Dintr-un fisier se citeste un text. Textul contine cuvinte separate printr-un spatiu. Se va genera un nou text care va contine cuvintele ordonate alfabetic
Multunesc!

Răspuns :

#include <fstream>

#include <cstring>

#include <iostream>

#include <algorithm>

using namespace std;

bool cmp(char* a, char* b){

return strcmp(a,b) < 0;

}

int main(){

char s[256], m[256][10], *ptr[256]; // s - textul citit, m- vectorul de siruri, ptr - vectorul de pointeri(poate fi sortat)

int k = 0;

ifstream fin("fisier");

fin.getline(s, 256);

fin.close();

// se construieste matricea m (fiecare rand = un cuvant) si vectorul de pointeri

char *p = strtok(s, " ");

while(p != NULL){

strcpy(m[k], p);

ptr[k] = m[k];

k++;

p = strtok(NULL, " ");

}

// se sorteaza vectorul de pointeri

sort(ptr, ptr + k, cmp);

// se reconstruieste textul cu cuvintele in ordine alfabetica

s[0] = '\0';

for(int i = 0; i < k; i++){

strcat(s, ptr[i]);

strcat(s, " ");

}

cout << s;

}