我需要像这样连接两个LPCSTR:
if (!rename(directory + originalFileName, directory + fileName)){
std::cout<<originalFileName<<std::endl<<fileName<<std::endl<<std::endl;
}然而,唯一的问题是我不能在这里使用+运算符。我如何安全地连接两个这样的LPCSTR?
编辑:注意,LPCSTR被定义为const * char,而LPCTSTR被定义为const TCHAR*。当定义UNICODE和/或_UNICODE时,两者是不同的。在这种情况下,他们是。
发布于 2015-08-15 03:11:56
多亏了WhozCraig,我得到了答案:
LPCSTR str1 = "foo",
str2 = "bar";
std::string(str1).append(str2).c_str();
std::cout<<str1;返回
foobar发布于 2015-08-15 03:07:16
既然LPCSTR是CONST CHAR*,我就用它,
(string(dir) + string(originalFileName)).c_str()发布于 2015-08-15 02:47:40
因为这些字符串是const的,所以需要一个新的缓冲区来保存结果。这意味着用“strlen”查找字符串的长度,用“new”分配缓冲区,用“strcpy”和“strcat”复制字符串。
这是一个如何学习它的提示,而不是我为你写的代码。
此外,还有其他选项,例如根据您的工具集使用std::string或CString。
https://stackoverflow.com/questions/32020900
复制相似问题