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 :

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;
}