C ++从字符串中选择N个字符

时间:2016-01-17 14:43:00

标签: c++ substring substr

我有一个字符串。设为string a = "abcde";

我想只选择几个字符(让我说从1到3)。

在python中我会像a[1:3]那样做。 但C ++并不允许我这样做。它仅允许例如:a[n],而不是[n:x]。

有没有办法从C ++中的字符串中选择n个字符?

或者我需要使用erase()吗?

2 个答案:

答案 0 :(得分:8)

您可以使用substr()

std::string a = "abcde";
std::string b = a.substr(0, 3);

请注意,索引从0开始。

如果您想缩短字符串本身,您确实可以使用erase()

a.erase(3); // removes all characters starting at position 3 (fourth character)
            // until the end of the string

答案 1 :(得分:5)

如果要重新分配对象,可以编写例如

std::string a = "abcde";

a = a.substr( 0, 3 );

但是,要选择字符,则无需更改对象本身。类std::string的大多数成员函数接受两个参数:字符串中的初始位置和要处理的字符数。您还可以使用迭代器来处理选定的字符,例如a.begin()std::next( a.begin(), 3 )。您可以使用在许多标准算法中指定字符串范围的迭代器。