所以,我正在使用char *,const char *;我有这样的事情:
char* message = "My name is: (put a name), and I am (number) year old.";
问题是我真的不知道如何弹性地从键盘接收数据。我的意思是这样的:
std::cin >> name >> years;
char* message = "My name is: %name, and I am %years year old";
请不要回答:为什么你不想在字符串上使用。我知道那个图书馆并不是我想要的,为什么?因为我正在编写套接字的东西而且它没有给我结果我正在寻找。 任何建议如何创建或连接2 const char *或char *为1?
答案 0 :(得分:1)
有什么建议我如何创建或连接2个const char *或char *为1?
您可以使用以下算法连接char*
指向的两个字符串:
let s1 and s2 be pointers to character strings to be catenated
let l1 be the length of s1
let l2 be the length of s2
let o be a dynamic array of char of length l1 + l2 + 1
copy s1 into the range [o ... o + l1 )
copy s2 into the range [o + l1 ... o + l1 + l2)
set o[o + l1 + l2] to be the null terminator character
store the address of o in a pointer: this is the output
请记住,必须销毁动态分配的对象。我建议使用标准容器来处理内存管理,以避免意外的UB或内存泄漏,并保持代码可读。
在C ++中的简单实现:
const char* s1 = input1;
const char* s2 = input2;
auto str = std::string(s1) + s2;
const char* catenated = str.c_str();