Foros del Web » Programación para mayores de 30 ;) » C/C++ »

problema al pasar a mayuscula

Estas en el tema de problema al pasar a mayuscula en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 11/02/2009, 08:42
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 4 meses
Puntos: 0
problema al pasar a mayuscula

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);

}
  #2 (permalink)  
Antiguo 11/02/2009, 12:50
 
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 81
Antigüedad: 17 años
Puntos: 1
Respuesta: problema al pasar a mayuscula

Hola! tenes un problema el la siguiente linea: while (*fr++!='\0') la funcion deberia ser:

void mayuscula (char *fr)
{
while (*(fr++)!='\0')
if ((*fr>'a') && (*fr<'z'))
*fr=(*fr)-32;
printf ("%c",*fr);

}

si vos poner *fr++ lo que estas aumentando es el contenido de lo que apunta el puntero, es por prioridad de operandos primero realiza * y luego ++; para aumentar el puntero lo pones entre parentesis y primer suma al puntero y luego lee el contenido de donde apunta el puntero que moviste.
Saludos, Lara
  #3 (permalink)  
Antiguo 11/02/2009, 14:46
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problema al pasar a mayuscula

no me da el resultado tampoco si lo compilas en visual c++ 6.0
  #4 (permalink)  
Antiguo 11/02/2009, 16:07
 
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 81
Antigüedad: 17 años
Puntos: 1
Información Respuesta: problema al pasar a mayuscula

probaste pasarlo de la siguiente manera:
mayuscula(*cad)


y que la funcion te quede:
char mayuscula(char min)
{ if(min>='a' && min <='z')
min-=32;
retunr min;
}


yo lo hice asi y me funciona perfectamente. Saludos,Lara

Última edición por Lara_1987; 12/02/2009 a las 08:54
  #5 (permalink)  
Antiguo 11/02/2009, 20:06
 
Fecha de Ingreso: diciembre-2007
Mensajes: 41
Antigüedad: 16 años, 4 meses
Puntos: 0
Respuesta: problema al pasar a mayuscula

Lara, nesesito que me enseñes bien c, das clases particulares??????????????
  #6 (permalink)  
Antiguo 12/02/2009, 08:53
 
Fecha de Ingreso: abril-2007
Ubicación: Buenos Aires, Argentina
Mensajes: 81
Antigüedad: 17 años
Puntos: 1
Respuesta: problema al pasar a mayuscula

hola! no no doy clase porque yo recien estoy aprendiendo (intermedio) lo de la funcion lo sabia porque es un ejercicio de la practica, cualquier cosa mandame un mensaje y si te puedo ayudar te ayudo sin ninigun problema.
Saludos, Lara :P
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:51.