Afficher char string[5]

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)

Serial.println(str1);

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)

Okay merci