Contrairement a d'autres langages comme PHP ou JavaScript, il n'est pas possible en C d'indéxer un tableau par une clé.
Il va falloir le faire "à la main"
Le plus simple est d'utiliser un tableau de structure :
#define NBKEY 20
#define KEYLEN 20
struct {
char key[KEYLEN];
int val; // ou autre type
} TabKeyVal[NBKEY];
Ce qui te donne un tableau a 20 élements dans lequel tu peux mémoriser tes couples.
Par contre il faudra forcément chercher chaque fois que tu veux une valeur.
Par exemple
int getVal( const char *key, int *pVal )
{
int i;
for ( i = 0 ; i < NBKEY ; i++ )
if ( 0 == strcmp( key, TabKeyVal[i].key ) )
{
*pVal = TabKeyVal[i].val;
return 1;
}
return 0;
}
En C++ avancé il existe des moyens de faire des collections mais cela n'est pas disponible a ma connaissance sur ATmega.
Au mieux, tu peux encapsuler la structure et ses méthodes d'accès dans une classe.