コード例 #1
0
ファイル: test_varstring.cpp プロジェクト: allenbo/common
int main() {
    // test for small append
    std::string str1 = "abc";
    std::string str2 = "def";
    const char* str3 = "efg";
    char c4 = 'h';
    const char* str5 = "ijklmn";

    VarString vs1;
    vs1.append(str1).append(str2).append(str3).append(c4).append(str5, 2);
    assert(vs1.toString() == str1 + str2 + str3 + c4 + "ij");

    // test for massive append
    std::string answer = "";
    int round = 100;
    int min = 200;
    int max = 2000;

    int round_id = 0;
    VarString vs2;
    while(round_id < round) {
        std::string str;
        if (round_id % 2) {
            str = random_string(rand() % (max - min) + min); 
        } else {
            str = random_string(rand() % (min - 10) + 10);
        }
        vs2.append(str); 
        answer += str;
        round_id ++;
    }

    assert(vs2.toString() == answer);


    // test for other function
    {
        std::string str1 = random_string(10);
        std::string str2 = str1.substr(0, str1.size() - 1);
        VarString vs;
        vs.append(str1);
        vs.drop();
        assert(vs.toString() == str2);
        vs.clear();

        vs.append(str1);
        int len = 5;
        std::string str3 = str1.substr(0, str1.size() - len);
        vs.drop(len);
        assert(vs.toString() == str3);
    }

    std::cout << VarString::format("This is an integer %d", 2) << std::endl;

}
コード例 #2
0
ファイル: varptr.cpp プロジェクト: ZhouWeikuan/darkreign2
//
// VarString::PointAt
//
// Setup/change to point to the VarString 'var', which MUST be setup
//
void VarString::PointAt(VarString &var)
{
  // Make sure target is valid
  if (!var.Alive())
  {
    ERR_FATAL(("Attempt to point a VarString at an invalid VarPtr"))
  }

  // Get the target item
  item = var.item;
}
コード例 #3
0
ファイル: LetString.cpp プロジェクト: rschleitzer/Scaly
_Array<String>& String::Split(_Page* _rp, char c) {
    _Array<String>* ret = new(_rp) _Array<String>();
    VarString* part = 0;
    for (size_t _i = 0; _i < length; _i++) {
        char currentChar = this->charAt(_i);
        if (currentChar == c) {
            if (part) {
                ret->push(new(_rp) String(part));
                part = 0;
            }
        }
        else {
            if (!part)
                part = new(_rp) VarString();
            part->append(this->charAt(_i));
        }
    }

    if (part)
        ret->push(new(_rp) String(part));

    return *ret;
}