将字符串拆分为指定字符并将其存储在向量中

时间:2013-10-27 23:29:45

标签: c++ string vector split

我正在使用自己的字符串类,我在使用这个“拆分”功能时遇到了麻烦。想法是传递一个字符,函数查找字符,在字符串的每个实例处拆分字符串,然后将结果字符串存储到向量中。例如。单词树的split('r')将返回包含“t”和“ee”的向量。这是我的功能:

std::vector<String> String::split(char c) const{
    std::vector<String> result;
    int start = 0, end;
    int i = 0;

    while(ptr[i] != 0) {
        if(ptr[i] == c) {
            end = i;
            result.push_back(substr(start, end - 1));
            start = end + 1;
        }
        ++i;
    }

    result.push_back(substr(start, length() - 1));

    return result;
}

每次运行时,都会给我一个bad_alloc错误。有什么想法吗?

编辑1:我的substr()采用起始位置和结束位置,与std :: string substr()

不同

0 个答案:

没有答案