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