Ti aiuterei, ma sapendo per quale scopo potrebbe servire il tuo programma mi astengo.
Scherzo.
è vietato dallo standard.
codice:
if(a[i] == 'p' || 'e' || 'r') a[i]='x';
è sbagliatissimo ...
Così come:
codice:
return sizeof(a[d]);
Ecco la versione corretta:
codice:
void sostituisci(char *a, size_t d)
{
for(int i=0; i < d; i++)
{
if(a[i] == 'p'){
if(a[i + 1] == 'e'){
if(a[i + 2] == 'r'){
int j;
a[i] = a[i + 1] = a[i + 2] = 'x';
//shifta l'array di due
for(j = i + 1; j < d - 1; j++){
a[i] = a[i + 2]
}
}
}
}
}
}
Non l'ho provata, probabilmente è sbagliata o malfunzionante