首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何连接两个LPCSTR

如何连接两个LPCSTR
EN

Stack Overflow用户
提问于 2015-08-15 02:28:00
回答 4查看 5.6K关注 0票数 3

我需要像这样连接两个LPCSTR:

代码语言:javascript
复制
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时,两者是不同的。在这种情况下,他们是。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-08-15 03:11:56

多亏了WhozCraig,我得到了答案:

代码语言:javascript
复制
LPCSTR str1 = "foo",
       str2 = "bar";

std::string(str1).append(str2).c_str();
std::cout<<str1;

返回

代码语言:javascript
复制
foobar
票数 2
EN

Stack Overflow用户

发布于 2015-08-15 03:07:16

既然LPCSTRCONST CHAR*,我就用它,

代码语言:javascript
复制
(string(dir) + string(originalFileName)).c_str()
票数 5
EN

Stack Overflow用户

发布于 2015-08-15 02:47:40

因为这些字符串是const的,所以需要一个新的缓冲区来保存结果。这意味着用“strlen”查找字符串的长度,用“new”分配缓冲区,用“strcpy”和“strcat”复制字符串。

这是一个如何学习它的提示,而不是我为你写的代码。

此外,还有其他选项,例如根据您的工具集使用std::string或CString。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32020900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档