c++ - 构建一个长字符串作为参数传递给函数

标签 c++ arrays string char concatenation

我对C++编程很陌生,我有

char INSERT_SQL[60];

和后面的代码

  INSERT_SQL = "INSERT INTO 'tempLog' ('temperature', 'humidity') VALUES ('";
  INSERT_SQL.concat(tempInC);
  INSERT_SQL.concat("','");
  INSERT_SQL.concat(humidity);
  INSERT_SQL.concat("');");

更新温度和湿度值后。

但我收到错误消息说无效的数组赋值

如果我使用 String INSERT_SQL; 而不是 Char INSERT_SQL[60]; 那么我会得到这个错误:

没有用于调用 'Connector::cmd_query(String&)'

的匹配函数

我应该如何构建一个将不同变量连接在一起的长数组?

最佳答案

看起来您确实在编写 C++(根据 Connector::cmd_query(String&))。因此,您可以使用 std::string

std::string INSERT_SQL;
/* later */
INSERT_SQL = "INSERT INTO 'tempLog' ('temperature', 'humidity') VALUES ('";
INSERT_SQL += tempInC;
INSERT_SQL += "','";
INSERT_SQL += humidity;
INSERT_SQL += "');";

只要函数调用需要 const char*,就使用 INSERT_SQL.c_str()

关于c++ - 构建一个长字符串作为参数传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41204931/

相关文章:

c++ - 变量数据库*;在 C++ 中

php - 如何找到数组中的最小数字并返回该数组的主索引?

c - 读取特定格式的字符串

c# - 用/斜线分割数组

c++ - 如何找出具有文件路径的字符串中是否有任何非ASCII字符

c++ - 您能推荐一款适合新手的有趣的驱动程序应用程序吗?

c++ - 如何在 C++ 中为 UDP 拆分和加入数组?

c++ - glGetFloatv 导致堆栈粉碎

Javascript Array.push() 方法

arrays - 无法打印字符串常量数组字符串的内容?