LastDelimiter找不到最后一个空格字符

时间:2018-12-18 20:02:13

标签: c++builder c++builder-10.2-tokyo multibyte-characters

我正在使用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" "

我在做什么错了?

0 个答案:

没有答案