arduino接收到一个字符串“360,360;720,0;0,0”,用什么变量来储存
时间: 2024-11-22 15:45:23 浏览: 12
Arduino串口接收字符串
5星 · 资源好评率100%
当你在Arduino项目中需要接收并处理这样一个字符串,通常会用到数组或者结构体来存储这个二维坐标数据。因为每个坐标由两个数值组成,所以可以考虑创建一个包含两个整数成员的结构体(如`Coord`),或者用字符数组来分割字符串,然后存储每个部分。
例如,你可以定义一个名为`CoordPair`的结构体:
```cpp
struct CoordPair {
int x;
int y;
};
// 或者使用数组
string inputString = "360,360;720,0;0,0";
const int MAX_COORD_PAIRS = 3; // 根据实际需要调整
CoordPair coordArray[MAX_COORD_PAIRS];
int numPairs = 0;
void parseInput() {
size_t pos = 0;
while ((pos = inputString.find(";")) != string::npos) {
int x = std::stoi(inputString.substr(0, pos));
int y = std::stoi(inputString.substr(pos + 1)); // 注意+1是因为分隔符是";"
coordArray[numPairs].x = x;
coordArray[numPairs++].y = y;
inputString.erase(0, pos + 1); // 删除已处理的部分
}
// 处理最后一个坐标,如果有的话
if (!inputString.empty()) {
int xy = std::stoi(inputString);
coordArray[numPairs - 1].y = xy;
}
}
```
在这个例子中,`coordArray`用于储存坐标对,`numPairs`记录了已经解析的坐标对的数量。注意,你需要根据实际情况来处理可能出现的数据错误情况。
阅读全文