Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C] SWITCH con STRINGHE

    Ciao
    devo fare uno scwitch con delle stringhe io ho fatto così:
    codice:
      switch(argv[1])
      {
    	case '<>':
    		  printf("redirect input < \n");
    		  break;
    	case '>>':
    		  printf("redirect output > \n");
    		  break;
    	default:
                       printf("defoult \n");
    		 
    		  break;
      }
    dove in argv è dichiarato come array di stringhe..ma non funziona.
    idee?

  2. #2
    Utente di HTML.it L'avatar di dannie
    Registrato dal
    Aug 2005
    Messaggi
    336
    Se non ricordo male in C lo switch accetta confronti solo su int e char... in alternativa esistono sempre gli if-else a cascata...
    edit: anche long e short: http://programmazione.html.it/c/c_19.htm

  3. #3
    confermo, non puoi utilizzare switch-case x le stringhe

  4. #4
    nota aggiuntiva:

    quando usi gli apici singoli utilizzi un tipo const char e quindi puoi inserire un solo carattere non di più

    dovresti usare gli apici doppi ma ovviamente come ti hanno anche detto lo switch su dati non "numerici" non è supportato
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Altra nota aggiuntiva:

    mi sa proprio che i simboli di redirezione NON siano passati come un qualsiasi parametro in argv, ma siano intercettati ed utilizzati dal DOS ... quindi non li troverai comunque ...

  6. #6
    Credo che il motivo sia che scrivere

    switch(variabile)
    {
    case valore1:
    printf("esempio");
    break;
    .......


    equivalga a

    if (varibile==valore1) printf("esempio")

    e per le stringhe (o meglio per gli array di caratteri) non può essere fatto un confronto con "==" bisogna usare delle aposite funzioni di libreria o crearsi delle funzioni ad hoc. Corregetemi se sbaglio

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.