在C++中使用星号拆分字符串
Split string using star in C++
我必须根据星号(*)拆分字符串。例如,如果我得到一个类似"a*a"
的字符串,那么我必须得到结果"a"
,我通过拆分字符串API在C++中获得了这个结果。但如果我得到一个像"12*12*12*12"
这样的字符串,那么我必须得到"12*12"
作为结果。我有一个想法,通过采取中间的恒星位置和分裂字符串来实现这一点。这可以通过STL正则表达式或任何其他简单的方式实现吗。
谢谢Ramkumar
在评论之后,我得出结论,split
不太适合这种情况。请改用substr
。
int len = str.length();
string splittedPart = str.substr(len/2 + 1); //second half
如果你确信你会一直有奇数颗恒星,那就找一颗老恒星:
std::string input;
std::vector<unsigned> star_positions;
for (unsigned i = 0; i < input.size(); ++i)
{
if (input[i] == '*')
star_positions.push_back(i);
}
unsigned split_position = star_positions[star_positions.size()/2];
std::string input_L = input.substr(0, split_position);
std::string input_R = input.substr(split_position+1, input.size());
为什么不继续对Star进行拆分,并将结果放入向量中。然后,您可以很容易地从向量中检索原始字符串的前半部分和后半部分。想想如果你有偶数颗恒星
相关文章:
- 我还可以添加什么来按空格或空格正确拆分C++字符串?
- 通过空行提升拆分字符串
- 如何按多个括号类型拆分字符串,但仍将括号保留在C++?
- 如何根据字符拆分字符串
- 在C++中拆分字符串的最佳做法
- 如何使用两个不同的分隔符拆分字符串
- 基于 C++ 中的多个字符串分隔符拆分字符串
- 拆分字符串输入并查找字符是否有效
- 使用 boost::split 按分隔符的前 N 次匹配来拆分字符串
- 如何在C 中不带有弦乐和strtok的情况下拆分字符串(提取单词)
- 为什么在黑客兰克的许多问题中都会完成拆分字符串
- C++拆分字符串反馈
- C++:按制表符拆分字符串,但包含空格
- 基于其中的数字子字符串拆分字符串
- 按空格拆分字符串并将列输出到不同的数组中
- C++ STL 在逗号处拆分字符串
- 如何根据某些字符拆分字符串?经度纬度
- 如何在 c++ 中拆分字符串的一部分
- 如何通过分隔符拆分字符串并将每个字符串放入不同的向量中
- 我如何在QT中的更多子字中拆分字符串