c++ - 我怎样才能对 TCHAR 进行子字符串化

标签 c++ windows tchar

我有一个 TCHAR 和如下值:

TCHAR          szDestPathRoot[MAX_PATH]="String This";

现在我想要 TCHAR 中的第一个三个字符,如下所示:

szDestPathRoot.substring(0,2);

我该怎么做。

最佳答案

TCHAR[] 是一个简单的空终止数组(而不是 C++ 类)。因此,没有“.substring()”方法。

TCHAR[](根据定义)可以是宽字符串 (Unicode) 或简单的字符字符串 (ASCII)。这意味着每个字符串函数都有 wcsstr 等价物(wcslen() vs strlen() 等) ETC)。以及一个不可知的编译时 TCHAR 等价物,可以是/或。

strncpy()TCHAR 等价于 tcsncpy()

最后警告:要声明一个 TCHAR 文字,最好使用 _T() 宏,如以下代码片段所示:

TCHAR szDestPathRoot[MAX_PATH] = _T("String This");
TCHAR szStrNew[4];
_tcsncpy (str_new, szTestPathRoot, 3);

您可能会对这些链接感兴趣:

关于c++ - 我怎样才能对 TCHAR 进行子字符串化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039850/

相关文章:

c++ - 从 C++ 中的字符串解析键/值对

c++ - 如何使用随机键值创建 std::map

java - Windows 上 java JTextArea 中的所有语言支持字体

复制文件到 windir c

c++ - 使用 TCHAR 时出错,无法转换为 wchar_t

c++ - ‘float’ 到 ‘float [16]’ 分配中的不兼容类型

c++ - Boost Geometry最近的查询是否总是先按最小距离对结果进行排序?

C++ 如何将 wchar_t* 转换为 TCHAR [](不是 TCHAR*)

windows - 如何知道我的程序上次运行时是否崩溃了?

c++ - Qt 小部件在某些情况下无法重新绘制