invertir cada palabra de string

antlcn
01 de Febrero del 2010
hola, estoy trabajando en un programa y necesito una función que invierta cada palabra de una frase, tal que se introduce por ejemplo "hola mundo" y el programa la transforma en "aloh odnum", tengo un codigo pero por mas vueltas que le doy no me funciona:

#include<stdio.h>
#include<string.h>

void invertirPalabras(char frase[]);

int
main(void)
{
char cadena[100];
printf("introduce la cadena: ");
gets(cadena);
printf("nLa cadena transformada es: ");
invertirPalabras(cadena);
printf("%s",cadena);
return 0;
}

void invertirPalabras(char frase[])
{
int i, aux=0, k, j;
char letra;
for(i=0;i<strlen(frase);i++){
if(frase[i+1]==' ' || frase[i+1]==''){
k=i;
j=aux;
while(j!=k || ((k-j)/2)<=j){
letra=frase[j];
frase[j]=frase[k];
frase[k]=letra;
j++;
k--;
}
aux=i-aux;
}
}
}

una ayuda no me vendría mal...
gracias! de antemano