2

我正在尝试将LPCSTR字符串转换为LPCTSTR字符串。我想连接两个字符串,当我这样尝试时

LPCTSTR str1 = L"Raja"
LPCSTR str2 = "Kumar"
wcscat_s(str1,(LPCTSTR)str2);

我找到了像 Raja..r(junkvalues)....这样的 o/p 怎么能类型转换LPCSTRLPCTSTR

4

4 回答 4

2

LPCTSTR可以是纯字符或宽字符,具体取决于您的项目设置。此外,您不可能将宽字符串和纯字符字符串连接起来。您需要将一个转换为兼容的形式(宽到多字节,反之亦然),然后连接。

假设您希望目标是宽字符串,则需要将其转换"Kumar"为宽字符串。为此,请使用MultiByteToWideChar具有适当代码页的函数。

在 MSDN 和 John 的链接上查找知识库文章。

于 2009-10-29T09:28:01.940 回答
2

请参阅以下说明:在 Visual C++ 中解开字符串。这些注释讨论了您将在 Microsoft C++ 开发中看到的各种字符串以及如何在它们之间进行转换。

于 2009-10-29T09:30:12.850 回答
0

我试过这个它有效:

#include <iostream>
#include <atlstr.h>

using namespace std;
int main()
{
    LPCSTR stringToConvert = "My troublesome string";
    CString transitionString = stringToConvert;
    LPCTSTR myDesiredString = transitionString;

    wcout  << myDesiredString;
}
于 2020-02-06T01:18:52.980 回答
0

如果您的代码是使用 UNICODE 编译的,那么 MultiByteToWideChar 是唯一的方法。

或者,您可以这样做。7bits ASCII -> wchar 应该很容易。

TCHAR str3[256] = { 0 };
for (int i = 0; str2[i] != 0; i++) str3[i] = str2[i];
于 2017-06-28T10:25:56.040 回答