我有此变量dirpath2,在其中存储路径的最深目录名称:

typedef std::basic_string<TCHAR> tstring;
tstring dirPath = destPath;
tstring dirpath2 = dirPath.substr(destPathLenght - 7,destPathLenght - 1);

我希望能够将它与另一个字符串进行比较,例如:
if ( _tcscmp(dirpath2,failed) == 0 )
{
...
}

我已经尝试了很多东西,但似乎没有任何效果。谁能告诉我该怎么做或我在做什么错?

请记住,我几乎对C++一无所知,这让我发疯。

预先感谢

最佳答案

std::basic_string<T>operator==重载,请尝试以下操作:

if (dirpath2 == failed)
{
...
}

或者,您可以这样做。由于std::basic_string<T>没有对const T*的隐式转换运算符,因此您需要使用c_str成员函数将其转换为const T*:
if ( _tcscmp(dirpath2.c_str(), failed.c_str()) == 0 )
{
...
}

07-26 05:41