繁体   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