Hola fary.
Estoy muy agradecido por tu aporte. A raiz del mismo me he puesto a investigar y e aprendido un montón. Me costó mucho entender tu código, ya que contiene funciones que nunca había utilizado.
En este caso, no pude compilarlo, ya que contiene la función itoa. Me tira el error "referencia a itoa sin definir".
Busqué un reemplazo para la misma y me encontré con la función sprintf. El programa quedó así:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int dia;
int anho;
char mes[20];
int i =0;
char * meses[12] = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
puts("Ingrese una fecha escrita en modo usual, por ejemplo 7 noviembre 1991.");
scanf("%i %s %i",&dia,&mes,&anho);
for (i = 0; i < 12; i++)
{
if (strcmp(meses, mes) == 0)
{
memset(mes,0,20);
sprintf(mes,"%i",i+1);
break;
}
}
printf("La fecha ingresada es: %d %s %d",dia,mes,anho);
return 0;
}
Luego, analizando un poco más, me di cuenta de que no hacía falta utilizar la funcion itoa ni de la sprintf, y lo resolví de la siguiente manera:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int dia;
int anho;
char mes[20];
int i =0;
char * meses[12] = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
puts("Ingrese una fecha escrita en modo usual, por ejemplo 7 noviembre 1991.");
scanf("%i %s %i",&dia,&mes,&anho);
for (i = 0; i < 12; i++)
{
if (strcmp(meses, mes) == 0)
{
break;
}
}
printf("La fecha ingresada es: %d %i %d",dia,i+1,anho);
return 0;
}
Evidentemente este es un programa mucho más optimizado que el que hice en un principio. Nuevamente, les doy las gracias a todos!
Saludos
Estoy muy agradecido por tu aporte. A raiz del mismo me he puesto a investigar y e aprendido un montón. Me costó mucho entender tu código, ya que contiene funciones que nunca había utilizado.
En este caso, no pude compilarlo, ya que contiene la función itoa. Me tira el error "referencia a itoa sin definir".
Busqué un reemplazo para la misma y me encontré con la función sprintf. El programa quedó así:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int dia;
int anho;
char mes[20];
int i =0;
char * meses[12] = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
puts("Ingrese una fecha escrita en modo usual, por ejemplo 7 noviembre 1991.");
scanf("%i %s %i",&dia,&mes,&anho);
for (i = 0; i < 12; i++)
{
if (strcmp(meses, mes) == 0)
{
memset(mes,0,20);
sprintf(mes,"%i",i+1);
break;
}
}
printf("La fecha ingresada es: %d %s %d",dia,mes,anho);
return 0;
}
Luego, analizando un poco más, me di cuenta de que no hacía falta utilizar la funcion itoa ni de la sprintf, y lo resolví de la siguiente manera:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int dia;
int anho;
char mes[20];
int i =0;
char * meses[12] = {"enero", "febrero", "marzo", "abril", "mayo", "junio", "julio", "agosto", "septiembre", "octubre", "noviembre", "diciembre"};
puts("Ingrese una fecha escrita en modo usual, por ejemplo 7 noviembre 1991.");
scanf("%i %s %i",&dia,&mes,&anho);
for (i = 0; i < 12; i++)
{
if (strcmp(meses, mes) == 0)
{
break;
}
}
printf("La fecha ingresada es: %d %i %d",dia,i+1,anho);
return 0;
}
Evidentemente este es un programa mucho más optimizado que el que hice en un principio. Nuevamente, les doy las gracias a todos!
Saludos