gpt4 book ai didi

c++ - 将数据(字符串或整数)添加到 char 数组

转载 作者:太空宇宙 更新时间:2023-11-04 13:54:49 26 4
gpt4 key购买 nike

我正在尝试将数据从 int 或 string 添加到预先存在的 char 数组中。代码如下

int num1 = 10;
int num2 = 5;
string temp = "客户端";
char buf[64] = "This is a message for: "+ temp + num1 + ""+ temp + num 2;

我似乎在这里收到转换数据错误。我不太确定如何将其正确转换为正确的数据类型。我需要将它们存储到 char 数组中,因为该数组随后将与 sendto() 函数一起用于 UDP 套接字,而不仅仅是将其打印到控制台/调试窗口

编辑:语言是c++

最佳答案

首先,您需要将整数转换为字符串。这可以使用 sprintf() 来完成, itoa()stringstream与运营商 <<

第二件事是了解运算符+是什么

"This is a message for: " + temp + num1 + " " + temp + num 2;

首先将采用前两个参数 "This is a message for: " + temp .第一个参数被认为是以 null 结尾的字符串,第二个参数是一个整数。没有预定义的运算符 +对于这样的操作。所以现在不需要继续求和了,我们已经编译失败了。

我可以提出两种解决方案:

int num1 = 10;
int num2 = 5;
char buf[64];
string temp = "Client";
sprintf(buf, "This is a message for: %s%d %s%d", temp.c_str(), num1, temp.c_str(), num2);
// Dangerous, can walk out of allocated memmory on the stack,
// which may not throw an exception in runtime but will mess the memory

更安全

#include <sstream>
int num1 = 10;
int num2 = 5;
string temp = "Client";
stringstream ss;
ss << "This is a message for: " << temp << num1 << " " << temp << num2;
ss.str().c_str(); // Message is here

关于c++ - 将数据(字符串或整数)添加到 char 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21975616/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com