Se utilizzi le std::string puoi usare le funzioni di ricerca che mette a disposizione.
Un'idea potrebbe essere questa.
codice:
//#include <cstdlib>
#include <iostream>
#include <fstream>
#include <string>
#include <sstream>
using namespace std;
void controllo(string);
int main(){
ifstream file("parole1.txt");
string parole;
int i=0,ok=0;
if(!file){
file.open("parole1.txt");
cerr<<"Impossibile aprire il file parole1.txt"<<endl;
system("pause");
return -1;
}
while(!file.eof()){
getline(file,parole); // si legge una riga intera
//cout<<parole<<endl;
controllo(parole);
}
system("pause");
return 0;
}
void controllo(string p){
string a,b,c;
// si divide nelle stringhe necessarie.
stringstream ss;
ss << p;
ss >> a;
ss >> b;
ss >> c;
// si utilizza la funzione find della std::string per trovare all'offset
// richiesto la stringa corrispondente (anche di un singolo carattere).
// se entrambe le condizioni sono false, si stampa la stringa richiesta.
if (b.find(a,0) == string::npos && b.find(a,b.size()-1) == string::npos) {
cout << b << endl;
}
if (c.find(a,0) == string::npos && c.find(a,c.size()-1) == string::npos) {
cout << c << endl;
}
}