Switch con stringhe in C

di Anonimizzato12759 il
6 risposte
Ciao ragazzi,c'è un modo per usare "switch" con delle variabili in formato char?
Vi do un codice sorgente per farvi un esempio di quello che voglio ottenere :

#include <stdio.h>

int main()
{
char Scelta[2];

printf("Ti sta simpatico Pippo ?\n");
printf("Risposta : ");
scanf("%s", &Scelta);

switch(Scelta)
{
case 'si':
printf("Ti sta simpatico\n");
break;

case 'no':
printf("Ti sta antipatico\n");
break;
}

system("pause>null");
return 0;
}

Ecco vorrei chiedere all'utente di inserire cosa pensa di Pippo

6 Risposte

  • Non si può fare lo switch case con gli array di caratteri, perché lo switch è un if con più opzioni. Nella condizione di un if non puoi scrivere l'uguaglianza tra due array di caratteri, al massimo puoi usare la funzione strcmp
  • luigibana96 ha scritto:


    Non si può fare lo switch case con gli array di caratteri, perché lo switch è un if con più opzioni. Nella condizione di un if non puoi scrivere l'uguaglianza tra due array di caratteri, al massimo puoi usare la funzione strcmp
    Quindi dovrei dichiarare una variabile char "si" e poi confrontarla con la risposta?
  • Una stringa in C ha anche un terminatore (leggi sul tuo libro come sono fatte le stringhe ...).

    Quindi, se vuoi memorizzare due caratteri, ne devi prevedere 3 nella stringa.
  • oregon ha scritto:


    Una stringa in C ha anche un terminatore (leggi sul tuo libro come sono fatte le stringhe ...).

    Quindi, se vuoi memorizzare due caratteri, ne devi prevedere 3 nella stringa.
    Ok lo vedrò ma potreste farmi un'esempio con un codice sorgente?
  • #include <stdio.h>
    
    int main()
    {
    char Scelta[3];
    
    printf("Ti sta simpatico Pippo ?\n");
    printf("Risposta : ");
    scanf("%s", &Scelta);
    
    if (strcmp(Scelta,"si")==0)
    printf("Ti sta simpatico\n");
    if (strcmp(Scelta,"no")==0)
    printf("Ti sta antipatico\n");
    
    system("pause>null");
    return 0;
    }
  • luigibana96 ha scritto:


    #include <stdio.h>
    
    int main()
    {
    char Scelta[3];
    
    printf("Ti sta simpatico Pippo ?\n");
    printf("Risposta : ");
    scanf("%s", &Scelta);
    
    if (strcmp(Scelta,"si")==0)
    printf("Ti sta simpatico\n");
    if (strcmp(Scelta,"no")==0)
    printf("Ti sta antipatico\n");
    
    system("pause>null");
    return 0;
    }
    Grazie del codice sorgente ragazzi non ricordavo più del \0 a fine stringa scusatemi
Devi accedere o registrarti per scrivere nel forum
6 risposte