我想对 C++ 中的字符数组或下面给出的 Python 代码的简单等效代码进行切片。
s1 = ["A", "B", "C" , "D" , "E"]
s2 = s1[0:2]
s2 ==> ["A","B"]
s1 ===> ["A", "B", "C" , "D" , "E"]
std::string
对象,并且要检索字符串的某些部分,您可以使用 std::string::substr
:
std::string s1("ABCDE");
std::string s2 = s1.substr(0, 2);
std::string_View
就是答案。请参阅获取字符数组的一部分
auto s1 = "ABCDE";
auto s2 = std::string_view{s1, 2}; // AB
如果您不想从位置 0 开始,您可以进一步移动指针并从那里开始切片:
auto s2 = std::string_view{s1 + 2, 2}; // CD
不幸的是,目前没有像 python 那样更改步长值的选项