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