C/Visual C - problema con variable char

 
Vista:

problema con variable char

Publicado por Andres Berrio (1 intervención) el 18/06/2009 21:19:07
Estoy haciendo el siguiente programa para convertir un numero del 1 al 99 a numero romano... pero tengo un error: "Incompatible types in assignment of `const char[10]` to `char[10]`"

Qué será?


main(){

int numero,segundo;
char rom2[10];

printf("Ingrese numero decimal: ");
scanf("%d",&numero);

segundo=numero%10;

switch(segundo){
case 0:
rom2="";
break;
case 1:
rom2="I";
break;
case 2:
rom2="II";
break;
case 3:
rom2="III";
break;
case 4:
rom2="IV";
break;
case 5:
rom2="V";
break;
case 6:
rom2="VI";
break;
case 7:
rom2="VII";
break;
case 8:
rom2="VIII";
break;
case 9:
rom2="IX";
break;
default:
break;
}

if (numero<10){
segundo=numero;
printf("%s",rom2);
}
else if(numero<20){
printf("X%s ",rom2);
}
else if(numero<30){
printf("XX%s ",rom2);
}
else if(numero<40){
printf("XXX%s ",rom2);
}
else if(numero<50){
printf("XL%s ",rom2);
}
else if(numero<60){
printf("L%s ",rom2);
}
else if(numero<70){
printf("LX%s ",rom2);
}
else if(numero<80){
printf("LXX%s ",rom2);
}
else if(numero<90){
printf("LXXX%s ",rom2);
}
else{
printf("XC%s ",rom2);
}

system("PAUSE");
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con variable char

Publicado por xae (5 intervenciones) el 18/06/2009 23:40:28
El error te indica que estás intentando realizar una asignación entre tipos incompatibles, en este caso char y const char.
La solución pasa por cambiar el tipo de la variable romano2 de char a char* o const char*, de la siguiente forma,

char * romano2;

o bien,

const char * romano2;

La declaración const char*, es en el caso de tu programa más apropiada, ya que explicitamente establece que el contenido del puntero es constante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con variable char

Publicado por xae (5 intervenciones) el 18/06/2009 23:50:46
El error te indica que estás intentando realizar una asignación entre tipos incompatibles, en este caso char y const char.
La solución pasa por cambiar el tipo de la variable romano2 de char a char* o const char*, de la siguiente forma,

char * romano2;

o bien,

const char * romano2;

La declaración const char*, es en el caso de tu programa más apropiada, ya que explicitamente establece que el contenido del puntero es constante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar