Detto tutto ciò con le modifiche che ti ho detto il programma funziona :
#include<iostream>
#include<string>
using namespace std;
bool sottostringa(string , string, int& );
void find_and_replace(string [], int, string, string );
const int dimm=3;
int i=0;
int main()
{
string x[]={"Ciao pippo","pluto","auto"};
string ss1="pluto";
string ss2="topolino";
find_and_replace(x,dimm,ss1,ss2);
cout<<"il nuovo vettore e'"<<endl;
for(int h=0;h<dimm;h++)
{
cout<<endl;
cout<<x[h];
}
return 0;
}
bool sottostringa(string s1, string s2, int& pos)
{
bool substring=false;
i=0;
int l1=s1.length();
int l2=s2.length();
pos=0;
while(i<=(l1-l2) && !substring)
if(s1.substr(i,l2)==s2)
{
substring=true;
pos=i;
}
else
i++;
return substring;
}
void find_and_replace(string a[], int dim, string s1, string s2)
{
int i,pos;
for(i=0;i<dim;i++)
if(sottostringa(a[i],s1,pos))
a[i]=a[i].substr(0,pos)+s2+a[i].substr(pos+s1.length(),a[i].length()-(pos+s1.length()));
}