我需要连接两个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时,两者是不同的。在这种情况下,他们是。
答案 0 :(得分:2)
由于这些字符串是const,因此需要一个新的缓冲区来保存结果。这意味着使用'strlen'查找字符串的长度,使用'new'分配缓冲区,并使用'strcpy'和'strcat'复制字符串
这是一个如何学习它的提示,而不是我为你编写代码。
此外,还有其他选项,例如根据您的工具集使用std :: string或CString。
答案 1 :(得分:2)
由于LPCSTR
是CONST CHAR*
我使用了这个,
(string(dir) + string(originalFileName)).c_str()
答案 2 :(得分:0)
LPCSTR是 const char * 的typedef。所以你不能使用这样的运算符。 我的建议如下:
这篇文章可能对您有所帮助。 http://www.codeproject.com/Articles/76252/What-are-TCHAR-WCHAR-LPSTR-LPWSTR-LPCTSTR-etc