c++ - Arduino中的字符串到字符
问题描述
char string2char(String ipString){
char opChar[ipString.length() + 1];
memset(opChar, 0, ipString.length() + 1);
for (int i = 0; i < ipString.length(); i++)
opChar[i] = ipString.charAt(i);
}
称为char charssId[AP_NameString.length()+1] = string2char(AP_NameString);
调用函数的正确方法是什么?想要将 String ssid 更改为 char ssid,使其与 esp8266 库兼容。
解决方案
char charssId[AP_NameString.length()+1] = string2char(AP_NameString);
这条线是行不通的。因为char charssId[AP_NameString.length()+1]
这意味着您要声明一个特定大小的数组,同时用方法返回的数组替换它。
您可以执行以下操作,
char* string2char(String ipString){ // make it to return pointer not a single char
char* opChar = new char[ipString.length() + 1]; // local array should not be returned as it will be destroyed outside of the scope of this function. So create it with new operator.
memset(opChar, 0, ipString.length() + 1);
for (int i = 0; i < ipString.length(); i++)
opChar[i] = ipString.charAt(i);
return opChar; //Add this return statement.
}
// Now call this as below,
char* charssId = string2char(AP_NameString); // make the variable as pointer so that it can hold an array address.
// use it as a char array.
delete[] charssId; // Remember to delete it after finished using it.
推荐阅读
- android - 我们如何为应用程序流创建 android 应用程序自定义文档?
- php - 在 PHP 中,我如何*安全地*获取给定语言环境的语言环境信息?
- c - 单字符 strcat -C
- javascript - 从javascript中的特定字符串中提取部分字符串
- laravel - 从关系中的外键检索最新数据
- eclipse - 如何对多标题列的行顺序进行排序?
- java - 运算符 > 未定义参数类型 XSSFCell, int Java(536871072)
- c# - How to create KMZ file on C#
- ember.js - How do you create nested dynamic routes with ember.js where child route replaces parent's template?
- firebase - Firebase API 问题(针对 Unity)