如何在C ++中的char []中传递变量值

S A*_*rew -2 c++

我有下面的代码行:

char sPostData[500] = "{\"name\":\"Test Unique Name 1\",\"salary\":\"123456\"}";
Run Code Online (Sandbox Code Playgroud)

而不是Test Unique Name 1我想传递一个变量值,如下所示:

string name = "JOHN";
char sPostData[500] = "{\"name\":" + name + "\",\"salary\":\"123456\"}";
Run Code Online (Sandbox Code Playgroud)

但是这样做会产生以下错误:

Error (active)  E0520   initialization with '{...}' expected for aggregate object   

Error   C2440   'initializing': cannot convert from 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' to 'char []'  
Run Code Online (Sandbox Code Playgroud)

如何解决此问题并在两者之间传递变量值。谢谢

Bas*_*tch 6

使用一些std::string。因此类似于(引号有点错误,您将对其进行纠正)

std::string PostData =
  std::string{"{\"name\":"} + name + "\",\"" + salary + "\":\"123456\"}";
Run Code Online (Sandbox Code Playgroud)

以后使用PostData.c_str()代替您的sPostData....

另请参阅有关原始字符串文字的信息。对于您而言,它们很有帮助。

进一步了解std::ostringstream。例如:

std::ostringstream os;
os << "{\"name\":" << name << "\",\"" << salary
   << "\":\" << pay << "}" << std::endl;
std::string PostData = os.str();
Run Code Online (Sandbox Code Playgroud)

但是 您确实应该使用一些不错的JSON,例如jsoncpp。您可能应该看一下第二个 示例

如果要编写与HTTP相关的内容,请详细了解该协议,然后考虑使用HTTP客户端库(如libcurl)和/或HTTP服务器库(如libonionWt)或框架(如POCOQt)

BTW,恕我直言,一个Linux发行版是一个更好的发展平台(甚至是交叉编译)比Windows是在你的特殊情况......(好UTF-8的支持,良好的HTTP支持,良好的JSON支持)和许多嵌入式硬件(例如RaspBerry PI)对Linux友好。

另请参见http://utf8everywhere.org/

当心C ++是一种非常困难的语言。请参阅此内容,并阅读http://norvig.com/21-days.html以获得更一般的了解。