首页 > 解决方案 > LastDelimiter 找不到最后一个空格字符

问题描述

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

我究竟做错了什么?

标签: c++builderc++builder-10.2-tokyomultibyte-characters

解决方案


推荐阅读