示例#1
0
// ----------------------------------------------------------------------------
// String.h
bool Test_String()
{
    TTRACE(_T("====================================================="));
    // StrRCSpn テスト。
    {
        const TCHAR* strCharSet = _T("abc");
        int ret;

        const TCHAR* str1 = _T("nakayama");
        ret = StrRCSpn(str1, strCharSet);
        if (ret != 7)
        {
            TTRACE(_T("StrRCSpn# failed! ret=%d"), ret);
            return false;
        }

        const TCHAR* str2 = _T("erio");
        ret = StrRCSpn(str2, strCharSet);
        if (ret != -1)
        {
            TTRACE(_T("StrRCSpn# failed! ret=%d"), ret);
            return false;
        }

        const TCHAR* str3 = _T("nakayama erio");
        ret = StrRCSpn(str3, strCharSet);
        if (ret != 7)
        {
            TTRACE(_T("StrRCSpn# failed! ret=%d"), ret);
            return false;
        }
    }

    // StrRStr テスト。
    {
        const TCHAR* result = NULL;

        const TCHAR* str1 = _T("Romancing SaGa, SaGa Frontier, Unlimited SaGa");
        result = StrRStr(str1, _T("SaGa"));
        if (result == NULL || _tcscmp(_T("SaGa"), result) != 0)
        {
            TTRACE(_T("StrRStr# failed! result=%s"), result);
            return false;
        }

        const TCHAR* str2 = _T("Romancing SaGa, SaGa Frontier, Unlimited SaGa, Romancing SaGa -Minstrel Song-");
        result = StrRStr(str2, _T("SaGa"));
        if (result == NULL || _tcscmp(_T("SaGa -Minstrel Song-"), result) != 0)
        {
            TTRACE(_T("StrRStr# failed! result=%s"), result);
            return false;
        }

        result = StrRStr(str2, _T("Itoken"));
        if (result != NULL)
        {
            TTRACE(_T("StrRStr# failed! result=%s"), result);
            return false;
        }
    }

    // Tokens テスト。
    {
        Tokens<TCHAR> tokens;
        tokens.Set(_T("I love \"Romancing SaGa\" (Super Famicom software)"), _T(" "), _T("\"\"()"));
        TString token;
        if (!tokens.Next(token) || token.compare(_T("I")) != 0)
        {
            TTRACE(_T("Tokens# failed! result=%s"), token.c_str());
            return false;
        }

        if (!tokens.Next(token) || token.compare(_T("love")) != 0)
        {
            TTRACE(_T("Tokens# failed! result=%s"), token.c_str());
            return false;
        }

        if (!tokens.Next(token) || token.compare(_T("Romancing SaGa")) != 0)
        {
            TTRACE(_T("Tokens# failed! result=%s"), token.c_str());
            return false;
        }

        if (!tokens.Next(token) || token.compare(_T("Super Famicom software")) != 0)
        {
            TTRACE(_T("Tokens# failed! result=%s"), token.c_str());
            return false;
        }

        if (tokens.Next(token))
        {
            TTRACE(_T("Tokens# failed!"));
            return false;
        }

        if (tokens.Next(token))
        {
            TTRACE(_T("Tokens# failed!"));
            return false;
        }
    }

    return true;
}