1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
struct Correspondance {
char nom[5]; // une lettre et 3 chiffres (eg A101) plus le caractère nul
uint16_t valeur;
};
const Correspondance tableauDesCorrespondances[] PROGMEM {
{"A310", 10},
{"B312", 14},
{"C114", 45},
{"Z322", 24},
{"X438", 12},
};
int32_t trouver(const char* texte) {
if (strlen(texte) != 4) return -1;
for (const Correspondance& c : tableauDesCorrespondances) {
if (strcmp_P(texte, c.nom) == 0) return pgm_read_word_near(&(c.valeur));
}
return -1;
}
void setup() {
Serial.begin(115200);
Serial.println(trouver("A310")); // 10
Serial.println(trouver("C114")); // 45
Serial.println(trouver("X438")); // 12
Serial.println(trouver("Bonjour")); // -1 (texte trop long)
Serial.println(trouver("Z654")); // -1 (pas dans la liste)
}
void loop() {} |
Partager