在ardiuno中把String变量#true#2a#3#转化为按照#分隔的数组, 然后再把数组第一个元素跟”true“进行对比
在 Arduino 中,你可以使用 strtok() 函数将一个 String 变量按照指定的分隔符切割为多个子字符串,并将它们存储到一个数组中。然后,你可以使用 strcmp() 函数将数组的第一个元素与字符串 "true" 进行比较。
以下是一个示例,演示如何在 Arduino 中将 String 变量 str 按照 # 分隔符切割为数组,并将数组的第一个元素与字符串 "true" 进行比较:
String str = "#true#2a#3#";
char *tokens[4]; // 假设最多有 4 个子字符串
void setup() {
Serial.begin(9600);
char *token = strtok(const_cast<char*>(str.c_str()), "#");
int i = 0;
while (token != NULL) {
tokens[i] = token;
i++;
token = strtok(NULL, "#");
}
// 将数组的第一个元素与字符串 "true" 进行比较
if (strcmp(tokens[0], "true") == 0) {
Serial.println("Match");
} else {
Serial.println("No match");
}
}
void loop() {
// 主循环
}
在上述示例中,我们首先定义了一个 String 变量 str,并初始化为 #true#2a#3#。
然后,我们定义了一个字符指针数组 tokens,用于存储切割后的子字符串。
在 setup() 函数中,我们使用 strtok() 函数将 str 转换为 const char* 类型,并按照 # 分隔符切割为多个子字符串,并将它们存储到 tokens 数组中。
然后,我们使用 strcmp() 函数将数组的第一个元素与字符串 "true" 进行比较。如果两个字符串相同,strcmp() 函数将返回 0,我们输出 "Match";否则,输出 "No match"。