Comparazione stringhe

di il
2 risposte

Comparazione stringhe

Salve a tutti =)
Ho un piccolo problema con la comparazione delle stringhe. Ad esempio, in questo programma:
#include <stdio.h>
#include <windows.h>
int main(){
    char risp[30];
    scanf("%c",risp);
    if((risp=="si")==true){
         printf("le stringhe sono uguali \n");
         system("pause");}
    else {
         printf("le stringhe NON sono uguali \n");
         system("pause");
         }
         }
anche se scrivo "si" in input quando me lo chiede, non riesco mai a far stampare la stringa "le stringhe sono uguali"... Ho provato anche con strcmp(risp,"si"), e risp.equals("si"),anche se quest'ultima con scarso successo, dato che non riuscivo a far avviare il programma ... in ogni caso, ho avuto sempre esito negativo.
Non riesco proprio a capire cosa ci sia di sbagliato
Qualche bravo volenteroso potrebbe aiutarmi la vigilia di natale??

2 Risposte

  • Re: Comparazione stringhe

    If((risp=="si")==true) non ha senso perche fai la comparazione tra puntatori.
    il modo giusto sarebbe
    
    int result = strcmp(risp,"si);
    if(result == 0)
    //stringhe uguali
    else
    //stringhe diverse.
    
    cambia anche
    
    char risp[30];
    scanf("%s",risp);
    
    con scanf("%c",risp); prendi solo un carattere.
  • Re: Comparazione stringhe

    Wow...Grazie tante della risposta, finalmente ho risolto
Devi accedere o registrarti per scrivere nel forum
2 risposte