Основная причина отсутствия вывода:
if (maybedel == del) // <<< this will *never* be true
cout << maybedel; // will never run
Поскольку для сравнения "строк" в массивах нужна помощь по std::strcmp(maybedel,del) == 0
, было бы лучше.
ОБНОВЛЕНИЕ:
Другой метод атаки - избегать необработанных циклов и использовать STL в свою пользу.Вот более надежное решение:
#include <algorithm>
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>
using namespace std;
int main() {
cout << "enter sentence :\n";
string sen;
if (!getline(cin, sen)) throw std::runtime_error("Unable to read sentence");
cout << "which word do you want to delete ? ";
string del;
if (!(cin >> del)) throw std::runtime_error("Unable to read delete word");
istringstream stream_sen(sen);
vector<string> arrayofkeptwords;
remove_copy_if(istream_iterator<string>(stream_sen), istream_iterator<string>(),
back_inserter(arrayofkeptwords),
[&del](auto const &maybedel) { return maybedel == del; });
copy(begin(arrayofkeptwords), end(arrayofkeptwords),
ostream_iterator<string>(cout, " "));
cout << '\n';
}