由于一些奇怪的原因,原始字符串意味着被拆分成各种其他字符串并使用分隔符放置在矢量字符串中并不能很好地工作。而我似乎无法找到我的错误。
#include <iostream>
#include <vector>
#include <string>
using namespace std;
vector<string> split(string target, string delimiter);
int main()
{
split ("1,2,3,4,5",",");
return 0;
}
vector<string> split(string target, string delimiter)
{
vector<string> word;
string letter;
int i = 0;
int k = 0;
while (target[i] != '\0')
{
word.empty();
word.push_back("target");
while (target[i] != delimiter[0])
{
letter = target[i];
i++;
}
word[i]=letter;
i++;
}
return (word);
}
答案 0 :(得分:0)
第一个问题是当你调用split
时,第二个参数是一个包含单个空格的字符串,但是你要拆分的字符串是用逗号分隔的。 H2CO3在评论部分已经提到的其他问题在下面突出显示为完整性。
delimiter
的类型更改为string::value_type
。const
引用而不是按值传递字符串,因为split
不需要或复制任何一个字符串。以下示例可帮助您更好地了解如何利用标准库中已存在的功能。它使用find
的{{1}}和substr
成员函数,而不是直接直接访问数据。我建议您在继续之前查看std::vector
和std::string
的文档。
std::string