👤
Mapsxxx
a fost răspuns

Se da un sir de caractere format din cuvinte separate prin spatii. Sa se afișeze toate cuvintele din sir care conțin litere aparținând unui cuvânt oarecare introdus de utilizator de la tastatura.

Răspuns :

Ated
Asta e rezolvarea, daca prin "sa se afișeze toate cuvintele din sir care conțin litere aparținând unui cuvânt" se intelege ca toate literele din cuvantul din sir (variabila p) se gasesc si in cuvantul citit (variabila b), de exemplu "abc" si "abcdef".

#include <iostream>
#include <cstring>

using namespace std;

int main()
{
    char a[100], b[100];
    cin.get(a, 100);
    cin >> b;
    char *p = strtok(a, " ");
    while(p)
    {
        int OK = 1;
        for (int i=0; p[i] && OK; i++)
            if (!strchr(b, p[i]))
                OK = 0;
        if (OK)
            cout << p << " ";
        p = strtok(NULL, " ");
    }
    return 0;
}