Visualizzazione dei risultati da 1 a 4 su 4

Discussione: Switch su stringhe

  1. #1
    Utente di HTML.it L'avatar di bako
    Registrato dal
    Feb 2004
    Messaggi
    1,797

    Switch su stringhe

    Salve gente, ho letto un pò dello switch, ma nn riesco a fare una cosa
    devo controllare se una stringa è uguale a certe cose
    per ora è implimentata così
    codice:
    if (strcmp(argomento,"bho") == 0){.. }
    if (strcmp(argomento,"ciao")==0) {..} 
    if (strcmp(argomento,"prova")==0) {..);
    posso trasformare tuto questo con uno switch case?
    come?

  2. #2
    Utente di HTML.it L'avatar di newbie
    Registrato dal
    Dec 2005
    Messaggi
    299

    Re: Switch su stringhe

    Originariamente inviato da bako
    Salve gente, ho letto un pò dello switch, ma nn riesco a fare una cosa
    devo controllare se una stringa è uguale a certe cose
    per ora è implimentata così
    codice:
    if (strcmp(argomento,"bho") == 0){.. }
    if (strcmp(argomento,"ciao")==0) {..} 
    if (strcmp(argomento,"prova")==0) {..);
    posso trasformare tuto questo con uno switch case?
    come?
    Sfortunatamente il C supporta lo switch solo su valori interi e costanti, non su stringhe.
    Anche se sarebbe veramente comodo...
    Svegliati, Neo. Matrix ti possiede...

  3. #3
    Però se le stringhe da riconoscere sono note a priori allora ti puoi costruire una funzione che data una stringa ti restituisce un intero del tipo int GetIndex(char *stringa) che poi userai nello switch . Saluti

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Oppure crea un vettore di stringhe (quelle da controllare) e un parallelo vettore di puntatori a funzioni da chiamare per eseguire il codice relativo. Con un ciclo che ricerca la stringa nel vettore di stringhe puoi trovare quella che ti serve ed eseguire la funzione corrispondente il cui puntatore e' nell'altro vettore ...

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 © 2024 vBulletin Solutions, Inc. All rights reserved.