std::basic_string_view<CharT,Traits>::substr - cppreference.com

From cppreference.com

constexprbasic_string_viewsubstr(size_typepos=0,size_typecount=npos)const;(since C++17)Returns a view of the substring [pos, pos+rlen), where rlen is the smaller of count and size()-pos.

Parameters

pos - position of the first character count - requested length Return value

View of the substring [pos, pos+rlen).

Exceptions

std::out_of_range

if pos>size().

Complexity

Constant.

Example

Run this code

#include<cstddef>#include<iostream>#include<stdexcept>#include<string_view>intmain(){typedefstd::size_tcount_t,pos_t;constexprstd::string_viewdata{"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]]autosub=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) See also

(C++26)

returns a sub-view
(public member function)

[edit]

copies characters
(public member function)

[edit]

find characters in the view
(public member function)

[edit]

returns a substring
(public member function of std::basic_string<CharT,Traits,Allocator>)

[edit]