• Lunes 29 de Abril de 2024, 21:20

Autor Tema:  Problema Al Comparar Char  (Leído 1205 veces)

pablo_ivan57

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Problema Al Comparar Char
« en: Domingo 6 de Enero de 2008, 18:58 »
0
Hola a todos, bueno el programa que propongo tiene que imprimir Enero 06, de 2007 en lugar de 01/06/07.
Hice la siguiente función:
void Transformar(char *p,int *a,int *b,int *c)
{
     char *s=p;//p es la cadena que se ingresa del teclado 01/06/07
     int cont=0,n;
     for(;*s!='\0';s++)
     {
      n=10,*c=0;
      for(;((*s!='/')||(*s!='\0'));s++)
      {
      (*c)=(*c)+((*s-46)*(n));
      n=n/10;
      cont++;
      }

      switch(cont){
      case 2:
       *a=*c; break;
      case 4:
       *b=*c; break;
      case 6:
      {
       if ((*c>9)&&(*c<100))
       *c=1900+*c;
       else if ((*c<10)&&(*c>0))
       *c=2000+*c;
       break;
      }}
     }
}  
El problema es en la parte con negrita, va todo bien , lo comprobé con el debugger pero cuando *s toma el valor de /, no compara, por lo que nunca sale del bucle.
Ignoro que error estoy cometiendo.
Además como punto extra, no tengo idea de como hacer para que con solo el año ingresado como /aa, pueda determinar que siglo es?, hay como?.
Espero me puedan ayudar.
Gracias.
Saludos.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Problema Al Comparar Char
« Respuesta #1 en: Domingo 6 de Enero de 2008, 19:08 »
0
Hola pablo.

Ahora no tengo tiempo para revisar todo el código, pero a simple vista me parece que las condiciones deberían ser una conjunción en vez de una disyunción.

Un saludo

PD: Mas tarde lo veo con mas tiempo
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

Loloto

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re: Problema Al Comparar Char
« Respuesta #2 en: Miércoles 9 de Enero de 2008, 17:06 »
0
Cita de: "pablo_ivan57"
Además como punto extra, no tengo idea de como hacer para que con solo el año ingresado como /aa, pueda determinar que siglo es?, hay como?.
 
la solucion mas usada para esto es definir una venta, por ejemplo 29, y determinar que todas las fechas posteriores al 29 seran del siglo XX y las anteriores seran del siglo XXI.

asi 30 seria 1930 y 28 seria 1928.
ojala y te sirva.