我有一个 TCHAR 和值如下:
TCHAR szDestPathRoot[MAX_PATH]="String This";
现在我想要 TCHAR 的第一个三个字符,如下所示:
szDestPathRoot.substring(0,2);
我怎样才能做到这一点。
TCHAR[]
是一个简单的空终止数组(而不是 C++ 类)。结果,没有“.substring()”方法。
TCHAR[]
(根据定义)可以是宽字符串 (Unicode) 或简单字符字符串 (ASCII)。这意味着每个字符串函数(vswcs
等)都有等效项。和一个不可知的编译时等价物,可以是非此即彼。str
wcslen()
strlen()
TCHAR
的TCHAR
等价物strncpy()
是tcsncpy()
。
最后警告:要声明TCHAR
文字,最好使用_T()
宏,如以下代码段所示:
TCHAR szDestPathRoot[MAX_PATH] = _T("String This");
TCHAR szStrNew[4];
_tcsncpy (str_new, szTestPathRoot, 3);
您可能会发现这些链接很有趣:
TCHAR szDestPathRoot[MAX_PATH]="String This";
TCHAR substringValue[4] = {0};
memcpy(substringValue, szDestPathRoot, sizeof(TCHAR) * 3);
这有点难看,但如果您确定:
您可以在第 4 个位置放置一个终止 NUL 以使字符串长度为 3 个字符。
szDestPathRoot[3] = _T('\0');
请注意,此操作对原始字符串具有破坏性
不过,您确实应该在 C++ 代码中使用字符串类。
当您使用“C++”标记您的问题时,您可以使用 std 库的字符串类:
std::wstring strDestPathRoot( _T("String This") );
strDestPathRoot.substr( 0, 2 );