簡體   English   中英

如何將 char* 轉換為 char 數組

[英]How to convert a char* to a char array

我正在通過 char 中的一系列變量名稱和值接收一些數據。 變量名存儲在 char* 指向的數組中。 我正在嘗試將收到的 char 數組數據與其他幾個 char arrays 進行比較,以便確定我收到了哪個變量的數據。

如何將 char* 轉換為 char 數組,以便將其與其他 arrays 進行比較,例如使用 strcmp function?

基本上,串行數據被輸入一個數組並由這個 function 處理:

void process(char *message) {
  char *name = strsep(&message, " ");  // split at the space
  if (!message) {
    Serial.println("Error: no value given");
    return;
  }
  char *endp;  // end of the numeric value
  long value = strtol(message, &endp, 0);
  if (endp == message) {
    Serial.println("Error: could not parse value");
    return;
  }
  // Successfully parsed.
  char namestr[] = name;
  if (strcmp(&namestr, &var1str) == 0) {
    Serial.print(name);
    Serial.print(" received value ");
    Serial.println(value);
  }
}

但是,當我嘗試char namestr[] = name; 我收到以下錯誤: initializer fails to determine size of 'namestr'

正如@stark 在評論中提到的,您只需將name傳遞給 strcmp() function。 char 數組在內部只是一個 char 指針char *

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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