[C con Clase] Ayuda con mi simulador dos

Steven Davidson steven en conclase.net
Sab Mar 3 16:52:57 CET 2007


Hola Julio,

El pasado 2007-03-03 15:35:23, Julio Eduardo escribió:

JE> please quisiera que halguien me ayudara con un simulador del DOS hecho en c++ he conseguido todo para hacerlo pero no puedo hacer que por ejemplo la palabra que ingreso osea el comando me sea reconocido para que me haga una instruccion...
JE> esto es lo que he intentado:
JE>  
JE> char comando[8];
JE>  
JE> no se preocupen por el resto que falta aqui ya todo esta bien el problema es el siguiente..
JE>  
JE> system("cd c:\\");
JE> printf("c:\> "); 
JE> gets(comando);//este s mi problema
JE> if(comando=="date")//aqui quisiera que me ayuden y corrijan si es q se puede para que me reconozca lo que ingreso.
JE>   DATE();  //una funcion que yo hice.. solo para no poner system("date"); xq st modifica la fecha
JE> else
JE> if(comando=="date") TIME();
JE> getch();//temporalmente xq en el if no me reconoce por eso no sigo con los demas comandos.
JE>  

El problema está en que el lenguaje no compara los arrays como esperas. El operador == compara las direcciones de memoria, que siempre serán diferentes. Lo que tienes que hacer es comparar cada carácter de una cadena con cada uno de la otra. Sugiero usar la función estándar 'strcmp()'. Por ejemplo,

if( strcmp(comando,"DATE") == 0 )  // comando = "DATE"
...
else if( strcmp(comando,"TIME") == 0 )  // comando = "TIME"
...


Espero que esto te ayude.

Steven


Más información sobre la lista de distribución Cconclase