我正在开发一个使用C++编写的Win32小应用程序。我很久以前就学过C++的基础知识,所以现在对C++中的字符字符串感到非常困惑。它们没有
经过一番调查,我决定不使用
简单来说,我需要做的就是将新数据放入一个字符字符串中。
在这种情况下,nd1和nd2的字符总数可能大于1000个字符,因此关键数据将丢失。
问题是如何将我需要的所有数据复制到声明为
附言:由于我是俄罗斯人,所以问题可能不太清楚。让我知道,我会尽力更清晰地解释我的问题。
WCHAR
或 TCHAR
,只有char
和 String
。经过一番调查,我决定不使用
TCHAR
。我的问题非常简单,但我找不到清晰的指南来操作C++中的字符串。受PHP编码的影响,我希望能够轻松地进行字符串操作,但事实证明我错了!简单来说,我需要做的就是将新数据放入一个字符字符串中。
WCHAR* cs = L"\0";
swprintf( cs, "NEW DATA" );
这是我的第一次尝试。在调试我的应用程序时,我调查发现swprintf只将前两个字符放入了我的cs变量中。我以以下方式解决了我的问题:
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_var;
的WCHAR字符串中而不会丢失任何内容?附言:由于我是俄罗斯人,所以问题可能不太清楚。让我知道,我会尽力更清晰地解释我的问题。
wchar_t
和std::wstring
。并且需要更多地了解指针,因为你最后的代码片段使用未初始化的指针复制数据,这意味着你可能会覆盖进程内存中的任何内容。 - Some programmer dudestring
。 - Mr.C64