Ci sono diversi errori, sia di sintassi che di logica. Vediamo:
codice:
int main()
{
char s1[]="abcdefgh";
char s2[]="ilmnohcder";
int indice=0;
bool occorrenza=false;
while(!occorrenza) //Logica: cosa fai se non trovi occorrenze ? Vai in loop !
{
for(int i=0;s1[i]!='\0';i++) //Sintassi. E' s1[i], non i.
{
while(!occorrenza) //Logica: cosa fai se non ti viene data occorrenza = true al primo ciclo ? Vai in loop !
{
for(int j=0;s2[j]!='\0';j++) //Sintassi. E' E' s1[j], non j
{
if(s1[i]==s2[j])
{
occorrenza=true;
indice=i;
}
/*Logica. Il codice che hai messo qui praticamente fa questo:
confronta carattere dopo carattere TUTTA la stringa s2 con il singolo carattere
della stringa s1. Io non intendo questo con trovare occorrenze di s2 in s1, ma
di solito intendo trovare l'intera stringa s2 in s1. Per fare questo dovresti fare
una cosa del tutto diversa.*/
}
}
}
}
if(occorrenza!=true)
cout<<"non ci sono occorrenze"<<endl;
else
cout<<"la posizione della prima occorrenza di s2 in s1 e': "<<indice<<endl;
system("pause");
}