Copie des caractères d'un tableau vers un autre tableau donne des NUL
Bonjour à tous,
Je crois que je fais une erreur basique mais je ne vois pas où?
Code:
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
| char sais[50];
if(detectKb && !enSaisie) { //lecture 1er caractère du clavier
lcd.backlight();
enSaisie = true;
if(carLu == '0') sais[0] = 'O'; //remplacement de '0' par 'O'
else sais[0] = carLu;
afficMsgLcd(0,0,String(sais[0]),true); //affichage de caractère saisi sur le lcd
detectKb=false;
}
if(detectKb && enSaisie){ //lecture complète du clavier caractère par caractère
static uint8_t j=0;
if(carLu != 'C'){ //jusqu'à la lettre 'C'
j++;
sais[j]=carLu;
afficMsgLcd(j,0,String(sais[j]),false);
detectKb=false;
}
else{ //fin de la saisie
char saisiKb[j+2];
for(i=0;i<j+1;i++){
saisiKb[i]=sais[i];
//Serial.print(saisiKb[i]); Serial.println(sais[i]);
}
saisiKb[j+2]='\0';
enSaisie = false;
j=0;
gestionCommandes(saisiKb);
detectKb=false;
if(!enAffic) lcd.noBacklight();
}
} |
je charge le tableau sais en saisissant un certain nombre de caractères par un clavier en terminant par 'C'.
Ayant enregistré le nombre de caractères saisis en j, je crée un nouveau tableau char saisiKb[j+2];
Puis je tente de copier les j caractères du tableau sais dans le tableau saisiKb.
Je termine par le caractères '\0', puis j'appelle la procédure gestionCommandes en passant le tableau.
Or cela ne fonctionne pas car j'ai découvert dans l'affichage du Serial que les deux tableaux ne contiennent que des caractères NUL.
Merci d'éclairer ma lanterne..