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

Je reçois une valeur int de l’une des broches analogiques de mon Arduino. Comment puis-je concaténer ceci à une Ssortingng , puis convertir la Ssortingng en un char[] ?

Il a été suggéré d’essayer char msg[] = mySsortingng.getChars(); , mais je reçois un message indiquant que getChars n’existe pas.

    1. Pour convertir et append un entier, utilisez l’ opérateur + = (ou la fonction membre concat ):

       Ssortingng ssortingngOne = "A long integer: "; ssortingngOne += 123456789; 
    2. Pour obtenir la chaîne en tant que type char[] , utilisez toCharArray () :

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

    Dans l’exemple, il n’y a que de l’espace pour 49 caractères (en supposant qu’il soit terminé par null). Vous voudrez peut-être rendre la taille dynamic.

    Juste comme référence, voici un exemple de conversion entre Ssortingng et char[] avec une longueur dynamic –

     // Define Ssortingng str = "This is my ssortingng"; // 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, cela est douloureusement obtus pour quelque chose d’aussi simple qu’une conversion de type, mais c’est malheureusement le moyen le plus simple.

    Aucune de ces choses n’a fonctionné. Voici un moyen beaucoup plus simple: le label str est le pointeur vers ce qu’est un tableau …

     Ssortingng str = Ssortingng(yourNumber, DEC); // Obviously .. get your int or byte into the ssortingng str = str + '\r' + '\n'; // Add the required carriage return, optional line feed byte str_len = str.length(); // Get the length of the whole lot .. C will kindly // place a null at the end of the ssortingng which makes // it by default an array[]. // The [0] element is the highest digit... so we // have a separate place counter for the array... byte arrayPointer = 0; while (str_len) { // I was outputting the digits to the TX buffer if ((UCSR0A & (1<