[英]How to convert the string of a byte array to a byte array
這可能看起來有點愚蠢,但我正在我的 RFID 卡上寫入數據,並且我在這些類型的 forms 中寫入:
{0x31,0x32,0x33,0x39}
我目前有一個字符串
"0x31,0x32,0x33,0x39"
有沒有辦法從字符串傳遞到字節數組? 先感謝您 !
這是我到目前為止的代碼,但真的不知道如何使它工作對不起,我是新手,但史蒂夫峰會我需要按特定順序使用所有這些嗎?
String str = "0x31,0x32,0x33,0x39";
byte Myarray[18];
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
}
int i = 0;
void loop() {
for (i; i<str.length();++i) {
Myarray[i] = strtol(str, 0, 16);
}
Serial.println(Myarray);
}
您可以使用 C function strtok來標記字符串。 您可以使用strtol將字符串轉換為數字。
char data[] = "0x31,0x32,0x33,0x39";
byte arr[4];
int length = 0;
const char* delim = ",";
char* tok = strtok(data, delim);
while (tok && length < sizeof(arr)) {
arr[length++] = strtol(tok, NULL, 16);
tok = strtok(NULL, delim);
}
for (int i = 0; i < length; i++) {
Serial.print(arr[i], HEX);
Serial.print(' ');
}
注意: strtok 將更改data
。 它將用字符串終止字符替換分隔,
。
編輯:最后,考慮到 Juraj 告訴我的內容,然后我意識到如果 0x31 = 49,它應該可以工作:我嘗試過並且成功了! 我可以用這種形式寫它: {49,50,51,57}
創建起來容易 10000000 倍! 太感謝了 !
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.