我正在使用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 ) ;
}
在调试方法调用时,尽管nPosCut
的结果为42(消息长度)(如代码中所写),但给我正确的值(34);如果我将String(" ")
更改为,则为0。 L" "
。
我在做什么错了?