Código
char lista_instrucciones[NUM_INSTR][10] = { {"PRINT"}, {"SUM"}, {"EXIT"} }; char *codigo = "PRINT BASURA!", *codigo2 = "EXIT TRASH"; void identificador_cadena(unsigned char *codigo) { unsigned short int pos_buffer = 0; while(saber_letra(codigo[pos])) { buffer[pos_buffer] = codigo[pos]; pos++; pos_buffer++; } buffer[pos_buffer] = '\0'; // Reutilizar variable pos_buffer for(pos_buffer = 0; pos_buffer < NUM_INSTR; pos_buffer++) return; }
Se espera que al pasar las variables codigo y codigo2 a la función identificador_cadena, esta imprima en pantalla:
Código:
Encontrado PRINT en PRINT
Encontrado EXIT en EXIT
Encontrado EXIT en EXIT
Pero en su lugar, imprime:
Código:
Encontrado SUM en PRINT
Encontrado EXIT en PRINT
Encontrado PRINT en EXIT
Encontrado SUM en EXIT
Encontrado EXIT en PRINT
Encontrado PRINT en EXIT
Encontrado SUM en EXIT
¿Alguien podría determinar el error?, no entiendo porque esto sucede