Arduino String类型字符串转char数组
strcpy()
函数
char *strcpy(char *dest, const char *src)
dest – 指向用于存储复制内容的目标数组。
src – 要复制的字符串。
toCharArray()
函数
myString.toCharArray(buf, len)
myString: 需要转的String.
buf: 存放目标对象. 数据类型:char数组.
len: 需要转换多少位. 数据类型: unsigned int.
getBytes()
函数
myString.getBytes(buf, len)
参数:myString: 需要转换的String.
buf: 存储对象. 数据类型: byte类型数组 或者unsigned char
len:转换长度. 数据类型: unsigned int.
实例代码
void libian(String str0);
void setup() {
Serial.begin(115200);
String strn= "白日依山尽,黄河入海流。欲穷千里目,更上一层楼。";
Serial.println(strn.length());
Serial.println(strn);
libian(strn);
char ch2[64];
strcpy(ch2,strn.c_str());
Serial.println(ch2);
unsigned char ch3[64];
strn.getBytes(ch3,strn.length()+1);
Serial.println(ch3);
}
void loop() {
}
void libian(String str0)
{
int temp = 0;
String str = str0;
if (str.indexOf(',') != -1)
{
temp++;
str.replace(",", ",");
}
if (str.indexOf(';') != -1)
{
temp++;
str.replace(";", ";");
}
if (str.indexOf('。') != -1)
{
temp++;
str.replace("。", ".");
}
if (str.indexOf('“') != -1)
{
temp++;
str.replace("“", "\"");
}
if (str.indexOf('”') != -1)
{
temp++;
str.replace("”", "\"");
}
Serial.println();
Serial.println(str);
Serial.println(str.length());
char ch[66];
str.toCharArray(ch,str.length()+1);
Serial.println(ch);
}
- 串口打印
