提问人:Damiano Miazzi 提问时间:3/2/2023 最后编辑:BolderayskyDamiano Miazzi 更新时间:3/16/2023 访问量:96
从 C++ 中的 char var 创建字符串
Create a string from the char var in C++
问:
我编写了这个 c++ 函数,用于从在线服务器读取时间戳。
我尝试将 dayOfweek 转换为 String。char[]
void printLocalTime()
{
struct tm tm;
if(!getLocalTime(&tm)){
Serial.println("Failed to obtain time");
return;
}
Serial.println(&tm, "%A, %B %d %Y %H:%M:%S");
char dayOfweek[8];
strftime(dayOfweek,8, "%A", &tm);
// take dayofweek and convert in String????
}
我怎样才能转换成 ?char[]
String
答:
0赞
Hudson
3/16/2023
#1
您可以只对字符串使用 + 运算符并连接字符:
// n is size of char array Arr
string temp = "";
for (int i = 0; i < n; i++) {
temp += Arr[i];
}
// temp is now the string version of Arr
这在 O(N) 复杂度下执行。
0赞
viraltaco_
3/16/2023
#2
顺便说一句,“星期三”是一个 10 个字符的字符串......
根据区域设置,您可能会遇到问题。
假设你想要一个:std::string
char week_day[16] = {};
const auto k = std::strftime(week_day, 16, "%A", &tm);
if (k == 0) { /* strftime failed */ }
auto str = std::string(week_day, week_day + k);
要制作Arduino字符串,我相信您可以将最后一行替换为:
auto str = String(week_day);
只要足够大,并且在将其传递给之前初始化为零(以便字符串以 null 结尾)。week_day
std::strftime
评论
std::string
还是来自非标准库的东西?String
dayOfweek
char[]
Serial.println
String
std::string
String
。