VirtualBox

儲存庫 vbox 的更動 67651


忽略:
時間撮記:
2017-6-27 下午05:11:00 (7 年 以前)
作者:
vboxsync
訊息:

IPRT: Added strip, stripLeft, and stripRight to RTCString.

位置:
trunk
檔案:
修改 2 筆資料

圖例:

未更動
新增
刪除
  • trunk/include/iprt/cpp/ministring.h

    r67650 r67651  
    757757     */
    758758    size_t count(const RTCString *pStr, CaseSensitivity cs = CaseSensitive) const;
     759
     760    /**
     761     * Strips leading and trailing spaces.
     762     *
     763     * @returns this
     764     */
     765    RTCString &strip();
     766
     767    /**
     768     * Strips leading spaces.
     769     *
     770     * @returns this
     771     */
     772    RTCString &stripLeft();
     773
     774    /**
     775     * Strips trailing spaces.
     776     *
     777     * @returns this
     778     */
     779    RTCString &stripRight();
    759780
    760781    /**
  • trunk/src/VBox/Runtime/common/string/ministring.cpp

    r67650 r67651  
    3333*********************************************************************************************************************************/
    3434#include <iprt/cpp/ministring.h>
     35#include <iprt/ctype.h>
    3536
    3637
     
    282283#endif
    283284
     285
     286RTCString &RTCString::strip()
     287{
     288    stripRight();
     289    return stripLeft();
     290}
     291
     292
     293RTCString &RTCString::stripLeft()
     294{
     295    char        *psz = m_psz;
     296    size_t const cch = m_cch;
     297    size_t       off = 0;
     298    while (off < cch && RT_C_IS_SPACE(psz[off]))
     299        off++;
     300    if (off > 0)
     301    {
     302        if (off != cch)
     303        {
     304            memmove(psz, &psz[off], cch - off + 1);
     305            m_cch = cch - off;
     306        }
     307        else
     308            setNull();
     309    }
     310    return *this;
     311}
     312
     313
     314RTCString &RTCString::stripRight()
     315{
     316    char  *psz = m_psz;
     317    size_t cch = m_cch;
     318    while (cch > 0 && RT_C_IS_SPACE(psz[cch - 1]))
     319        cch--;
     320    if (m_cch != cch)
     321    {
     322        m_cch = cch;
     323        psz[cch] = '\0';
     324    }
     325    return *this;
     326}
     327
     328
     329
    284330RTCString RTCString::substrCP(size_t pos /*= 0*/, size_t n /*= npos*/) const
    285331{
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette