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?
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?
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.
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?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]); }
codice:struct _Assoc{ char *key; char *value; }lang[] = { { "italiano", "ITA" }, { "inglese", "EN" } };
printf("%s %s\n", lang[ITALIANO], lang[INGLESE]);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?
No, a meno di usare librerie apposite o farti tu delle strutture dati "associative".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?
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.
ti ringrazio tantissimo, avevo provato con questo, ma poi avevo alcuni problemi nel caso del print visto che c'erano spazi ecc...Originariamente inviato da menphisx
codice:struct _Assoc{ char *key; char *value; }lang[] = { { "italiano", "ITA" }, { "inglese", "EN" } };
allora ho usato qualcosa di + semplice...
grazie comunquecodice: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"; } }