Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale
alfabetului englez. Scrieti un program in c++ care afișeaza, în ordine lexicografică, cuvintele distincte din șir.
Răspunsuri la întrebare
Urmatoarea rezolvare e pura c++, folosind containari si iteratori. Daca ai intrebari iti stau la dispozitie.
#include <iostream>
#include <cstring>
#include <vector>
#include <algorithm>
using namespace std;
int main()
{
char s[200],sir[200];
vector<string> ss;
cout<<"sir=";
gets(s);
int i=0; int pos=0;
while(i<strlen(s))
{
if(s[i]==' ')
{
strncpy(sir,s+pos,i-pos);
sir[i-pos]='\0';
string str(sir);
ss.push_back(str);
pos=i+1;
i++;
}
i++;
}
strncpy(sir,s+pos,i-pos);
sir[i-pos]='\0';
string str(sir);
ss.push_back(str);
sort( ss.begin(), ss.end() );
ss.erase( unique( ss.begin(), ss.end() ), ss.end() );
for(int i=0; i<ss.size(); i++)
cout<<ss[i]<<" ";
return 0;
}