string et tableau

Bonjour tout le monde ! Je me suis récemment renseigné sur les variables de type objet qui m'ont l'air très pratique, j'aimerais les utiliser avec des chaines de caractères mais je n'y parviens pas... Voici une illustration de ce que j'aimerais faire :

String objet1[3]={"abdc","efgh","ijkl"};
String objet2[3];
objet2[0]= objet1[0];

J'aimerais que la chaine "abdc" de la premiere case de mon objet1 soit mise dans la premiere case de mon objet2, et ainsi de suite avec "efgh" et "ijkl". Mais lorsque je compile, la derniere ligne n'est pas acceptée... Auriez vous une idée du pourquoi ?

Par ailleurs, une autre question me vient a l'esprit :

Si je declare une variable sur 8 bits

byte octet;
octet = 0xFE; // base 2 : 1111 1110, base 10 : 254
octet << 1;  //  on devrait trouver en base 2 : 1111 1101, et en base 10 : 253

octet =  254 // avant decalage
octet =  252 // apres decalage

lorsque j'affiche entre les lignes les valeurs de "octet", j'obtiens 254 puis 252 et non pas 254 puis 253.. Pourquoi ?

Bonjour,

Dans ton premier code il n'y a pas d'erreur et ça devrait se compiler correctement. Quel est le message d'erreur?

FE c'est effectivement 1111 1110 quand tu décales à gauche ça fait 1111 1100 soit 252 en décimal (il n'y a pas de report de la carry à droite).

PS: bien sur l'affectation objet2[0]= objet1[0]; doit être à l'intérieur d'une fonction.

Un décalage à gauche (ou à droite) n'est pas circulaire.

Si tu veux un décalage circulaire d'un bit à gauche, tu peux coder :

octet = (octet << 1) | (octet >> 7);

Merci pour vos réponses, de plus rapide et precise :).
Effectivement j'avais oublié de mettre cette ligne dans une fonction ... Merci !
Pour que je sois sur, tu confirmes bien que cette ligne fait ce que je souhaite ? c'est a dire affecter "abdc" sur la case 0 de mon objet 2 ?

Ah d'accord je pensais que c'etait circulaire.. Merci pour le tuyau bricoleau !
Merci :slight_smile:

eeaeea:
Pour que je sois sur, tu confirmes bien que cette ligne fait ce que je souhaite ? c'est a dire affecter "abdc" sur sur la case 0 de mon objet 2 ?

Oui, il suffit d'afficher objet2[0] sur le moniteur série pour s'en convaincre.