Yo lo haría así:
#include <stdio.h>
#include <string.h>
#define MAX_LONGITUD 2048
int main(int argc, char *argv[])
{
char corregida[MAX_LONGITUD];
int conta, conta2, longitud;
if(argc==2)
{
longitud=strlen(argv[1]);
for(conta=0, conta2=0; conta<=longitud && conta2<=MAX_LONGITUD; conta++, conta2++)
{
if(conta+1<longitud && ((conta-1>=0 && argv[1][conta-1]==' ') || conta==0) && (argv[1][conta]=='i' || argv[1][conta]=='u') && argv[1][conta+1]=='e')
corregida[conta2++]='h';
corregida[conta2]=argv[1][conta];
}
printf("\n\nCadena original: %s\n\nCadena corregida: %s\n\n", argv[1], corregida);
}
return 0;
}
[/i]
Para usarlo:
nombre_binario "No me creo que la iena se comiese la ierba del uerto."
Salu2