Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    10

    Confronto di stringhe in C

    Ciao ragazzi!!
    Come faccio a verificare se una stringa è uguale ad un' altra senza confrontare carattere per carattere?
    oSk

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    usa la funzione strcmp(stringa1, stringa2).

    ATTENZIONE: restituisce 0 se le stringhe sono uguali, effettuando una differenza lessicografica, quindi per sapere se sono uguali si usa una cosa così:
    codice:
    if (!strcmp(stringa1, stringa2)) {
       /* Sono uguali */
    } else
       /* Sono diverse */
    }
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    10
    Ma strcmp confronta il contenuto, o la lunghezza?

    ..ops..scusa non avevo letto la tua premessa!! ora provo!!

    Grazie
    oSk

  4. #4
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Il contenuto... è ovvio, però, che se due stringhe hanno lunghezza divera, sono diverse.

    Per confrontare le lunghezze puoi usare la strlen(stringa) che restituisce la lunghezza della stringa passata come parametro.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2003
    Messaggi
    10
    Tutto a posto, grazie!
    oSk

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da LeleFT
    usa la funzione strcmp(stringa1, stringa2).

    ATTENZIONE: restituisce 0 se le stringhe sono uguali, effettuando una differenza lessicografica, quindi per sapere se sono uguali si usa una cosa così:
    codice:
    if (!strcmp(stringa1, stringa2)) {
       /* Sono uguali */
    } else
       /* Sono diverse */
    }
    Ciao.

    è giusto metterlo così?

    char stringa[10]
    printf("INSERISCI STRINGA: ");
    gets(stringa1);
    if (!strcmp(stringa1, stringa2)) {
    /* Sono uguali */
    } else
    /* Sono diverse */
    }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    Ehm... devi definire stringa2 e mettere gets(stringa) e non gets(stringa1) che non è definita.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  8. #8
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    cosi?


    char stringa[10]
    printf("INSERISCI STRINGA: ");
    gets(stringa);
    if (!strcmp(stringa, CIAO)) {
    /* Sono uguali */
    } else
    /* Sono diverse */
    }

    se nn è giusto mi faresti un esempio tu?

    sono un novellino...

    ty
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    4
    codice:
      char stringa[16];
    
      printf ("INSERISCI STRINGA: "); 
      gets ((char*)&stringa);
    
      if ( !strcmp ((char*)&stringa, "CIAO") )
        printf ("Hai inserito esattamente CIAO");
      else
        printf ("Hai inserito qualcos altro");

  10. #10
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Ricordati che una stringa come "CIAO" va racchisa tra doppi apici

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.