87 votes

Conversion d'un int ou d'une chaîne en un tableau de caractères sur Arduino

Je reçois une valeur int d'une des broches analogiques de mon Arduino. Comment concaténer cela en String puis convertir le String en char[] ?

Il a été suggéré que j'essaye char msg[] = myString.getChars(); , mais je reçois un message indiquant que getChars n'existe pas.

139voto

Peter Mortensen Points 7440
  1. Pour convertir et ajouter un entier, l'utilisation de l'opérateur += (ou un membre de la fonction concat):

    String stringOne = "A long integer: ";
    stringOne += 123456789;
    
  2. Pour obtenir la chaîne de type char[], l'utilisation toCharArray():

    char charBuf[50];
    stringOne.toCharArray(charBuf, 50) 
    

Dans l'exemple, il n'y a de place que pour 49 caractères (en supposant qu'il est terminé par null). Vous pouvez faire la taille de la dynamique.

60voto

Alex King Points 782

À titre de référence, voici un exemple de conversion entre String et char[] avec une longueur dynamique -

 // Define 
String str = "This is my string"; 

// Length (with one extra character for the null terminator)
int str_len = str.length() + 1; 

// Prepare the character array (the buffer) 
char char_array[str_len];

// Copy it over 
str.toCharArray(char_array, str_len);
 

Oui, ceci est douloureusement obtus pour quelque chose d'aussi simple qu'une conversion de type, mais malheureusement, c'est le moyen le plus simple.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X