我有一个2D TCHAR
数组。我需要将它转换为一维数组。为此,我需要获得TCHAR
数组的大小。
假设array[i] = "My name";
现在我需要获得array[i]
的大小。有什么方法可以得到吗?任何帮助将不胜感激。
答案 0 :(得分:1)
首先添加这些宏:
#include <vector>
#include <string>
#ifndef UNICODE
#define tstring std::string
#else
#define tstring std::wstring
#endif
#ifndef _T
#define _T(X) X
#endif
现在宣布一个tstrings向量:
typedef std::vector<tstring> tstrings;
tstrings fileNames;
for(i=0;i<256;i++)
{
tstring ts = FindFileData.cFileName;
fileNames.push_back(ts);
}
知道您需要使用的字符串大小ts.length()
现在您可以使用+来附加字符串 像这样:
tstring ts1 = _T("hello");
tstring ts2 = _T("world");
ts1 += _T(" ");
ts1 += ts2;
BTW:使用数组作为变量名可能会导致std :: array出现歧义。
答案 1 :(得分:1)
现在我需要获得
array[i]
的大小。
使用_tcslen
查找TCHAR
的以空值终止的数组的长度,如果这是您真正想做的事情。
但是,您可能会更好地服务于:
TCHAR
而是仅使用UTF-16编码文本,即平台本机编码。std::wstring
。