std::basic_string_view<CharT,Traits>::substr
From cppreference.com
< cpp | string | basic string view
constexpr basic_string_view substr( size_type pos =0, size_type count = npos )const; | (since C++17) | |
Returns a view of the substring [
pos,
pos + rlen)
, where rlen
is the smaller of count and size()- pos.
Contents |
[edit]Parameters
pos | - | position of the first character |
count | - | requested length |
[edit]Return value
View of the substring [
pos,
pos + rlen)
.
[edit]Exceptions
std::out_of_range if pos > size().
[edit]Complexity
Constant.
[edit]Example
Run this code
#include <cstddef>#include <iostream>#include <stdexcept>#include <string_view> int main(){typedefstd::size_t count_t, pos_t; constexprstd::string_view data{"ABCDEF"}; std::cout<< data.substr()<<'\n';// ABCDEF, i.e. data[0, 5] that is [0, 6)std::cout<< data.substr(pos_t(1))<<'\n';// BCDEF, i.e. [1, 6)std::cout<< data.substr(pos_t(2), count_t(3))<<'\n';// CDE, i.e. [2, 2 + 3)std::cout<< data.substr(pos_t(4), count_t(42))<<'\n';// EF, i.e. [4, 6) try{[[maybe_unused]]auto sub = data.substr(pos_t(666), count_t(1));// throws: pos > size()}catch(std::out_of_rangeconst& ex){std::cout<< ex.what()<<'\n';}}
Possible output:
ABCDEF BCDEF CDE EF basic_string_view::substr: __pos (which is 666) > __size (which is 6)
[edit]See also
copies characters (public member function) | |
find characters in the view (public member function) | |
returns a substring (public member function of std::basic_string<CharT,Traits,Allocator> ) |