我正在用 C++ 开发一个小型 Win32 应用程序。我很久以前就研究过C++基础知识,所以现在我完全被C++中的字符串弄糊涂了。没有WCHAR
或TCHAR
只有char
和String
。经过一番调查,我决定不使用TCHAR
.
我认为我的问题非常简单,但我找不到如何在 C++ 中操作字符串的明确指南。受过去几年 PHP 编码的影响,我期待一些简单的字符串操作,但错了!
简单地说,我需要的只是将新数据放入字符串中。
WCHAR* cs = L"\0";
swprintf( cs, "NEW DATA" );
这是我的第一次尝试。在调试我的应用程序时,我调查过 swprintf 仅将前 2 个字符放入我的 cs var。我已经通过这种方式解决了我的问题:
WCHAR cs[1000];
swprintf( cs, "NEW DATA" );
但通常这个技巧可能会失败,因为在我的情况下,新数据不是常量值而是另一个变量,它可能比 1000 字符长更宽。我的代码是这样的:
WCHAR cs[1000];
WCHAR* nd1;
WCHAR* nd2;
wcscpy(nd1, L"Some value");
wcscpy(nd2, L"Another value"); // Actually these vars stores the path for user selected folder
swprintf( cs, "The paths are %s and %s", nd1, nd2);
在这种情况下,nd1 和 nd2 的总字符数可能大于 1000 个字符,因此关键数据将丢失。
问题是如何将我需要的所有数据复制到以这种方式声明的 WCHAR 字符串WCHAR* wchar_var;
而不丢失任何内容?
PS 因为我是俄罗斯人,所以问题可能不清楚。现在让我谈谈这一点,我将尝试更清楚和更复杂地解释我的问题。