Problème invalid types 'char[int]' for array subscript

Bonjour,
J'ai créé cette fonction. Mon but est de coder le mot 'TIPE' en bits pour pouvoir l'envoyer à une led.
`
//Fonction test:
int c;
char d ='TIPE';
int n = sizeof(d) ;// n est la longueur du char d

void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

}

void loop()
{
for (int j=0; j < n; j++ ) {
//char y1[n] ;
char y1 = d[j];//ligne 17
byte x1 = y1;
Serial.println(d);
for (int i=0; i < 8; i++){
c = (x1 & 0x01);
Serial.println(c);
x1 >>=1;
delay(500);
}
}
Serial.println("Fin");
}
J'ai cette erreur et je ne la comprends pas :
In function 'void loop()':
17: error: invalid types 'char[int]' for array subscript
invalid types 'char[int]' for array subscript
`

Et pouvez-vous m'aider à réaliser mon objectif ?
Merdi d'avance
Edmond

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

char d ='TIPE';

TIPE n'est pas un seul caractère... ce n'est pas le bon type pour représenter une chaîne. cf string - Arduino Reference


Merci d'éditer votre post pour rajouter les balises de de code, c'est quasiment illisible tel quel:

  • sélectionner la partie du texte qui correspond au code
  • appuyez sur l'icône </> dans la barre d'outils pour indiquer que c'est du code

(Assurez vous aussi d'indenter le code correctement dans l'IDE avant de le copier pour le coller ici. Cela se fait en pressant ctrlT sur PC ou cmdT sur un Mac)

Mais, comment transformer une String L = "TIPE" en char[4] = { 'T', 'I' , 'P', 'E' } ?
J'ai changé l'algorithme et il fonctionne avec char[4] = { 'T', 'I' , 'P', 'E' }.
Merci pour tout.
Edmond

pas de réponse tant que le premier post n'a pas été édité (le petit crayon) pour le mettre en conformité.

Merci.

Bonjour,
Comment modifier une string : String T = "mot" ; en char T[3] ={ "m", "o", "t"} ?
Mettre en entrer une string est plus pratique que un char.
Merci d'avance
Edmond

Bonjour,

Je n'ai pas très bien compris ce que tu veux faire. En C/C++ on ne peut pas modifier le type d'une variable.

Si tu veux convertir ta String en tableau de char utilise toCharArray()

 char Tc[3];
 T.toCharArray(Tc, sizeof Tc);

Si tu veux la convertir en C string utilises c_str()

posts fusionnés.

@bonnafortuna1

  • lisez les bonnes pratiques
  • corrigez votre premier post
  • de postez pas des questions liées (hors contexte) dans d'autres posts.