Ajuda em C

swz

Membro
Boas pessoal.

Ando a fritar a cabeça nos últimos dias com um problema num programa que tenho de fazer. Sou novato e percebo pouco disto.

É o seguinte: Quero ler uma string de dois caracteres, e depois, de acordo com a string, fazer uma atribuição.

Sei que não posso usar CASE para strings, mas para perceberem melhor o que eu queria vou deixar o seguinte exemplo:

Código:
printf("string?");
scanf("%s",input);

switch(input)
{
case "Z1": a=0;
break;
case "Z2": a=1;
break;
case "Z3": a=2;
break;
case "Z4": a=3;
break;
}
 
Podes usar o switch se fizeres qualquer coisa deste género:
int main(){
int i,j=-1;
char *comandos[4]={"Z1","Z2","Z3","Z4"};
char *input[3];

printf("string?");
scanf("%s",input);

for(i=0;i<4;i++){
if(strcmp(input,comandos)==0){
j=i;
}
}

switch(j){
case 0: printf("\nEscolheu z1: %s.\n",input);break;
case 1: printf("\nEscolheu z2: %s.\n",input);break;
case 2: printf("\nEscolheu z3: %s.\n",input);break;
case 3: printf("\nEscolheu z4: %s.\n",input);break;
default: printf("\nEscolheu opcao invalida.\n");break;
}
return 0;
}
 
Muito obrigado, já tinha tentado com a função strcmp mas pensei que não desse neste caso, mas afinal estava a usa-la de forma incorrecta. Muito obrigado mesmo!
 
Back
Topo