我正在使用自己的字符串类,我在使用这个“拆分”功能时遇到了麻烦。想法是传递一个字符,函数查找字符,在字符串的每个实例处拆分字符串,然后将结果字符串存储到向量中。例如。单词树的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()
不同