std::string_view substr() method
- since C++17
// Const version onlyconstexpr basic_string substr( size_type pos = 0, size_type count = npos ) const;
Returns a view of the substring [ pos, pos + rcount ), where rcount
is std::min(count, size() - pos)
.
Parameters
pos
- position of the first charactercount
- requested length
Return value
View of the substring [ pos, pos + rcount ).
Complexity
Constant - O(1).
Exceptions
Throws std::out_of_range
if pos > size()
.
Example
#include <cstddef>#include <iostream>#include <stdexcept>#include <string_view> int main(){ typedef std::size_t count_t, pos_t; constexpr std::string_view data{"ABCDEF"}; std::cout << data.substr() << '\n'; // ABCDEF std::cout << data.substr(pos_t(1)) << '\n'; // BCDEF std::cout << data.substr(pos_t(2), count_t(3)) << '\n'; // CDE std::cout << data.substr(pos_t(4), count_t(42)) << '\n'; // EF // count -> 2 == size() - pos == 6 - 4 try { data.substr(pos_t(666), count_t(1)); // throws: pos > size() } catch(std::out_of_range const& ex) { std::cout << ex.what() << '\n'; }}
Possible output
ABCDEFBCDEFCDEEFbasic_string_view::substr: __pos (which is 666) > __size (which is 6)
This article originates from this CppReference page. It was likely altered for improvements or editors' preference. Click "Edit this page" to see all changes made to this document.
Hover to see the original license.
Hover to see the original license.