me pueden decir porque mi programa no pasa las palabras a mayusculas???????, lo compilo en visual c++ 6.0 y me tira en esa parte un caracter, me pueden ayudar?, gracias.
 
#include <stdio.h>
#define MAX 256
int contar (char *fr);
void inversion (char *fr,int lg);
void mayuscula (char *fr);
 
int main()
{
	char frase[MAX];
	int longitud;
	printf ("Ingrese una frase por favor\n");
	gets (frase);
 
	longitud=contar(frase);
	printf ("La longitud es: %d \n",longitud);
 
	printf ("La palabra invertida es: \n");
	inversion(frase,longitud);
	printf ("\nLa palabra en mayuscula es: \n");
	mayuscula (frase);
 
	printf ("\n");
	return 0;
}
int contar (char *fr)
{
	int lg=0;
	while (*fr++!='\0')
		lg++;
 
	return lg;
}
void inversion (char *fr,int lg)
{
	//char fra[MAX];
	int i;
	for (i=lg-1;i>=0;i--)
		printf ("%c",*(fr+i));
}
void mayuscula (char *fr)
{
	while (*fr++!='\0')
		if ((*fr>'a') && (*fr<'z'))
			*fr=(*fr)-32;
			printf ("%c",*fr);
 
} 
   
 
 Respuesta: problema al pasar a mayuscula
 Respuesta: problema al pasar a mayuscula 
