我有一个TCHAR和值,如下:
TCHAR szDestPathRoot[MAX_PATH]="String This";现在我想要TCHAR中的前三个字符,如下所示:
szDestPathRoot.substring(0,2);我该怎么做呢。
发布于 2010-10-28 13:40:30
TCHAR[]是一个简单的以null结尾的数组(而不是C++类)。因此,没有".substring()“方法。
TCHAR[] (根据定义)可以是宽字符串(Unicode),也可以是简单字符字符串(ASCII)。这意味着每个字符串函数都有wcs和str等效项(wcslen()与strlen()等)。和一个不可知的、编译时TCHAR等效物,可以是/或。
strncpy()在TCHAR中的等价物是tcsncpy()。
最后警告:要声明TCHAR文本,最好使用_T()宏,如以下代码片段所示:
TCHAR szDestPathRoot[MAX_PATH] = _T("String This");
TCHAR szStrNew[4];
_tcsncpy (str_new, szTestPathRoot, 3);您可能会对以下链接感兴趣:
_tcsncpy_s)发布于 2010-10-28 12:52:32
TCHAR szDestPathRoot[MAX_PATH]="String This";
TCHAR substringValue[4] = {0};
memcpy(substringValue, szDestPathRoot, sizeof(TCHAR) * 3);发布于 2010-10-28 12:48:50
这有点难看,但如果您确定:
你可以把一个终止NUL放在第四个位置,使字符串有3个字符。
szDestPathRoot[3] = _T('\0');请注意,此操作会破坏原始字符串
不过,您实际上应该在C++代码中使用string类。
https://stackoverflow.com/questions/4039850
复制相似问题