Informatică, întrebare adresată de Andreas278, 9 ani în urmă

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

Răspuns de andreidiaconescu18
0

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;

}

Alte întrebări interesante