Cerința
Se dă un șir de caractere format din cuvinte, separate prin spații. Cuvintele conțin doar litere mici ale alfabetului englez. Afișați, în ordine lexicografică, cuvintele distincte din șir.
Date de intrare
Programul citește de la tastatură șirul dat.
Date de ieșire
Programul va afișa pe ecran cuvintele în ordinea cerută, câte un cuvânt pe o linie.
Restricții și precizări
-șirul dat va avea cel mult 255 de caractere și va conține cel mult 100 de cuvinte
-lungimea unui cuvânt este de cel mult 15 caractere
Răspunsuri la întrebare
Răspuns de
6
#include <iostream>
#include <cstring>
using namespace std;
char text[1000] , cuv[102][21] , sep[] = ". ,?!;:" , *p , aux[21];
int n , i , j,ok;
int main()
{
cin.getline(text,999);
n = 0;
p = strtok(text,sep);
while(p)
{
strcpy(cuv[n++] , p);
ok=0;
for(i=0;i<n-1;i++)
if(strcmp(cuv[i],cuv[n-1])==0)ok=1;
if(ok) n--;
p = strtok(NULL , sep);
}
for(i = 0; i < n-1 ; i++)
for(j=i+1 ; j < n ; j++)
if(strcmp(cuv[i] , cuv[j]) > 0)
{
strcpy(aux , cuv[i]);
strcpy(cuv[i] , cuv[j]);
strcpy(cuv[j] , aux);
}
for(i = 0; i < n; i++)
cout << cuv[i] << "\n";
return 0;
}
Alte întrebări interesante
Geografie,
8 ani în urmă
Limba română,
8 ani în urmă
Matematică,
9 ani în urmă
Religie,
9 ani în urmă
Matematică,
9 ani în urmă