首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Arduino上将int或字符串转换为char数组

在Arduino上将int或字符串转换为char数组
EN

Stack Overflow用户
提问于 2011-09-12 13:22:09
回答 4查看 319.3K关注 0票数 84

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

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

EN

回答 4

Stack Overflow用户

发布于 2014-05-27 10:15:56

作为参考,下面是一个如何使用动态长度在Stringchar[]之间进行转换的示例-

代码语言:javascript
复制
// 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);

是的,对于像类型转换这样简单的事情来说,这是非常迟钝的,但不知何故,这是最简单的方法。

票数 57
EN

Stack Overflow用户

发布于 2019-05-25 16:43:29

如果不需要可修改的字符串,可以使用以下命令将其转换为char*:

代码语言:javascript
复制
(char*) yourString.c_str();

当您希望通过arduino中的MQTT发布字符串变量时,这将非常有用。

票数 16
EN

Stack Overflow用户

发布于 2016-08-31 09:41:48

这些东西都不管用。这里有一个简单得多的方法..标签字符串是指向数组的指针...

代码语言:javascript
复制
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;
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7383606

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档