簡體   English   中英

如何將字節數組的字符串轉換為字節數組

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM