Jump to content
f-22

Reconhecer comandos do user [RESOLVIDO]

Recommended Posts

f-22

Boas pessoal,

Estou a desenvolver um programa em C que tem entre outras coisas, tem de reconhecer comandos e dependendo da opção escolhida, fazer coisas.

Exemplo:

  comandos válidos: "teste" "teste dois" "sair"

  Se "teste" > imprime 1

  Se "teste dois" > imprime 2

  Se "sair" > sai

O que comecei a fazer foi definir 1 char[8][50] de comandos válidos. Já leio o imput, mas gostava que me dessem uma luz porque não estou a ter nenhuma ideia a não ser "hardcoded" if (strcmp(option, possibleOptions[0]) == 0) ... else if...else if...else if...else if...

Obrigado

Share this post


Link to post
Share on other sites
KTachyon

Pah... para comparares os comandos, podes fazer mesmo um ciclo :P

int i;

for (i = 0; i < max_commands; i++) {
    if (strcmp(option, possibleOptions[i]) == 0) {
        execute(i); // wtv
        break;
    }
}

Mas depois disso... Pelo menos desta forma podes substituir por um switch case :D


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites
f-22

Pah... para comparares os comandos, podes fazer mesmo um ciclo :P

int i;

for (i = 0; i < max_commands; i++) {
    if (strcmp(option, possibleOptions[i]) == 0) {
        execute(i); // wtv
        break;
    }
}

Mas depois disso... Pelo menos desta forma podes substituir por um switch case :D

Boas, obrigado pela solução, realmente não me lembrei disso :S....

:)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.