将一个int或String转换为Arduino上的char数组

我从我的Arduino上的一个模拟引脚获得一个int值。 我如何连接到一个String ,然后将String转换为char[]

有人build议我尝试char msg[] = myString.getChars(); ,但我收到一条消息, getChars不存在。

  1. 要转换和追加整数,请使用运算符+ = (或成员函数concat ):

     String stringOne = "A long integer: "; stringOne += 123456789; 
  2. 要获得stringtypes为char[] ,请使用toCharArray() :

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

在这个例子中,只有49个字符的空间(假设它被null终止)。 你可能想要使大小dynamic。

就像一个参考,这里是一个如何在dynamic长度之间转换Stringchar[]的例子 –

 // 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); 

是的,对于像types转换这样简单的事情来说,这是非常令人沮丧的,但遗憾的是这是最简单的方法。

没有任何东西的工作。 这是一个更简单的方法..标签str是什么是一个数组的指针…

 String str = String(yourNumber, DEC); // Obviously .. get your int or byte into the string 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 string 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<<UDRE0))) // Is the TX buffer empty? { UDR0 = str[arrayPointer]; --str_len; ++arrayPointer; } }