我正在使用 C++ Builder 10.2 Tokyo,我必须在变量中找到最后一个空格的位置,该String
变量的值类似于"XXX YYYYY TYUR KXYZ"
;
如果我使用该函数LastDelimiter(const System::UnicodeString Delimiters, const System::UnicodeString S)
,它返回 0,但如果我使用该UnicodeString method::LastDelimiter( UnicodeString Delimiter )
方法,它返回变量的长度。
这是我正在使用的代码:
void TMyClass::SetVerbo()
{
int nPosCut = 0;
if( !this->Message.IsEmpty() ) // Message is a UnicodeString (String)
{
nPosCut = this->Message.LastDelimiter(String(" ")) + 1 ;
}
if( nPosCut > 0 )
this->Verbo = this->Message.SubString(nPosCut, this->Message.Length() -nPosCut ) ;
}
在调试方法调用时,它给了我正确的值(34),尽管结果nPosCut
是 42(消息长度),如代码中所写,或者如果我更改String(" ")
为L" "
.
我究竟做错了什么?