Bonjour, je voudrais afficher un tableau de valeur à 4 chiffres : char str1[5]
J'ai essayé mais j'y arrive pas.
Merci d'avance
char str1[5];
void setup() {
Serial.begin(9600);
str1 = {'a', 'b', 'c', 'd', '\0'};
}
void loop() {
Serial.println(str1[5]);
delay(500);
}
A priori, vous ne faites pas beaucoup de fautes; sachez cependant:
que l'initialisation est simplifiée (et vous ne devriez pas le faire dans le setup : l'IDE d'atduino doir protester, j'espère)
char str1[] = "abcd"; // vous mettra d'office un 0 à la fin
que les indices de tableaux commencent à 0 (le second élément du tableau a donc pour indice ... 1, ce qui fait bien rigoler les amateurs de Fortran ou de R)
initialisé comme je vous l'ai montré, str1[3] vaudra d, str1[4] vaudra 0 (non imprimable) et
str1[6] vaudra ....
n'importe quoi
(et sur un plus gros ordinateur, tel un PC, ol y a de la place pour générer de vigoureuses protestations et un arrêt du programme)
dbrion06:
A priori, vous ne faites pas beaucoup de fautes; sachez cependant:
que l'initialisation est simplifiée (et vous ne devriez pas le faire dans le setup : l'IDE d'atduino doir protester, j'espère)
char str1[] = "abcd"; // vous mettra d'office un 0 à la fin
que les indices de tableaux commencent à 0 (le second élément du tableau a donc pour indice ... 1, ce qui fait bien rigoler les amateurs de Fortran ou de R)
initialisé comme je vous l'ai montré, str1[3] vaudra d, str1[4] vaudra 0 (non imprimable) et
str1[6] vaudra ....
n'importe quoi
(et sur un plus gros ordinateur, tel un PC, ol y a de la place pour générer de vigoureuses protestations et un arrêt du programme)
Okay, bon j'ai pas tout compris mais ça marche maintenant.
J'aurais une deuxième question : Comment je peux faire pour modifier les chiffres séparément ? C'est à dire modifier le 1er 1 en un 8 par exemple dans une fonction void loop. Comment en fait sélectionner les premiers chiffres séparément. Pas juste faire str1 = {'8','1','1'}; dans le void loop
Je fais ça pour essayer de comprendre pour ensuite l'appliquer à un code plus général : Afficher char string[5] - Français - Arduino Forum
J'ai
char str1[4]= {'1','1','1'};
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println(str1);
delay(500);
}[\code]
Si vous voulez modifier un charactère, rien de plus simple (une fois qu'on a compris que les indices commencent à 0, ce qui est, j'en conviens, contre intuitif):
str[1]='8' vous mettra à 8 le .... second caractère.
str[0]='9' modifiera à 9 le premier caractère
str[111]='z' fera des horreurs, à moins que votre chaîne n'ait plus de 111 caractères (dont 110 utiles , le \0 servant à la terminer)