ho abbozzato questo, guarda se può fare il caso tuo
codice:
/*
Testo :
Scrivere un algoritmo ricorsivo che assegnati due array S1 e S2
restituisca TRUE se il secondo è contentuto tutto nel primo,
FALSE in caso contrario.
*/
#include<cstdlib>
#include<iostream>
using namespace std;
bool controllo(char * S1, char * S2) {
if (!*S1)
return true;
else {
// cerca la prima occorrenza della prima lettera di S1
while (*S2 && *S1 != *S2) S2++;
if (!*S2) return false; // non trovata, allora esci
else return controllo(++S1, ++S2);
}
}
int main(){
char S1[25];
char S2[25];
cout<<"Inserisci la prima parola : ";
cin.getline(S1,25);
cout<<"Inserisci la seconda parola : ";
cin.getline(S2,25);
if (!controllo(S1, S2))
cout<<"La prima parola non può essere contenuta nella seconda" << endl;
else
cout<<"La prima parola è contenuta nella seconda" << endl;
}
attenzione!! ho invertito i due array (il primo l'ho trasformato nel secondo e viceversa
ciao