Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101

    [C] Corrispondenze negli Array

    ciao ragazzi, ecco il mio quesito:

    In php io scrivo:
    $lang = array ( 'italiano' => 'ITA', 'inglese' => 'EN');

    in modo che se io cheido
    echo $lang['italiano'] mi spunti ITA

    se voglio fare la stessa cosa in C, che devo scrivere?

  2. #2
    Non esiste qualcosa di nativo in C.
    Puoi crearti delle liste concatenateo un'array di strutture, ma se vuoi usare quella sintassi devi crearti un parser.

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,462
    Qualcosa del genere

    codice:
    enum _lan
    {
       ITALIANO, INGLESE
    };
    
    char *lang[] = { "ITA", "EN" };
    
    void main()
    {
      printf("%s\n", lang[ITALIANO]);
      printf("%s\n", lang[INGLESE]);
    }

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    Originariamente inviato da oregon
    Qualcosa del genere

    codice:
    enum _lan
    {
       ITALIANO, INGLESE
    };
    
    char *lang[] = { "ITA", "EN" };
    
    void main()
    {
      printf("%s\n", lang[ITALIANO]);
      printf("%s\n", lang[INGLESE]);
    }
    grazie... posso provare... c'è qualche altra possibilità? magari che mi permette di averli accanto sulla stessa riga, in modo da avere tutto a vista d'occhio?

  5. #5
    codice:
    struct _Assoc{
       char *key;
       char *value;
    }lang[] = {
       { "italiano", "ITA" },
       { "inglese", "EN" }
    };

  6. #6
    Originariamente inviato da Baly23
    grazie... posso provare... c'è qualche altra possibilità? magari che mi permette di averli accanto sulla stessa riga, in modo da avere tutto a vista d'occhio?
    printf("%s %s\n", lang[ITALIANO], lang[INGLESE]);

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Originariamente inviato da Baly23
    c'è qualche altra possibilità? magari che mi permette di averli accanto sulla stessa riga, in modo da avere tutto a vista d'occhio?
    No, a meno di usare librerie apposite o farti tu delle strutture dati "associative".
    Quello che ha mostrato oregon è semplicemente un accesso per indice un po' "mascherato". A te serve una struttura dati in cui la chiave possa essere una stringa. E come ti è già stato detto, non esiste nulla di "nativo" del genere in C.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2005
    Messaggi
    101
    Originariamente inviato da menphisx
    codice:
    struct _Assoc{
       char *key;
       char *value;
    }lang[] = {
       { "italiano", "ITA" },
       { "inglese", "EN" }
    };
    ti ringrazio tantissimo, avevo provato con questo, ma poi avevo alcuni problemi nel caso del print visto che c'erano spazi ecc...

    allora ho usato qualcosa di + semplice...
    codice:
    char *NewGame, *Options, *Credits, *Quit;
    
    int LanguageID = 0;
    
    void Lang()
    {
    	if(LanguageID == 0) // Italian
    	{
    		NewGame = "Nuovo Gioco";
    		Options = "Opzioni";
    		Credits = "Ringraziamenti";
    		Quit = "Esci";
    	}
    	if(LanguageID == 1) // English
    	{
    		NewGame = "New Game";
    		Options = "Options";
    		Credits = "Credits";
    		Quit = "Quit";
    	}
    }
    grazie comunque

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.