Switch con stringhe in C

di il
6 risposte

Switch con stringhe in C

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

  • Re: Switch con stringhe in C

    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
  • Re: Switch con stringhe in C

    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?
  • Re: Switch con stringhe in C

    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.
  • Re: Switch con stringhe in C

    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?
  • Re: Switch con stringhe in C

    #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;
    }
  • Re: Switch con stringhe in C

    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