C++ 中的 char 数组切片(python 到 c++)

问题描述 投票:0回答:2

我想对 C++ 中的字符数组或下面给出的 Python 代码的简单等效代码进行切片。

s1 = ["A", "B", "C" , "D" , "E"]
s2 = s1[0:2] 

s2 ==> ["A","B"]
s1 ===> ["A", "B", "C" , "D" , "E"]
c++ python arrays string char
2个回答
4
投票

在处理字符串时,您应该使用

std::string
对象,并且要检索字符串的某些部分,您可以使用
std::string::substr
:

std::string s1("ABCDE");
std::string s2 = s1.substr(0, 2);

0
投票
如果您使用的是 C++17 编译器,那么

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 那样更改步长值的选项

© www.soinside.com 2019 - 2024. All rights reserved.