Difference between revisions of "cpp/string/basic string/substr"
From cppreference.com
< cpp | string | basic string
(if pos > 0 returning pos, size() would always return an error... the actual function returns pos, (size()-pos)) |
|||
Line 6: | Line 6: | ||
}} | }} | ||
− | Returns a substring {{tt|[pos, pos+count)}}. If the requested substring extends past the end of the string, or if {{c|1=count == npos}}, the returned substring is {{tt|[pos, }}[[cpp/string/basic_string/size|{{tt|size()}}]]{{tt|)}}. | + | Returns a substring {{tt|[pos, pos+count)}}. If the requested substring extends past the end of the string, or if {{c|1=count == npos}}, the returned substring is {{tt|[pos, }}[[cpp/string/basic_string/size|{{tt|size()}}]]-pos{{tt|)}}. |
===Parameters=== | ===Parameters=== |
Revision as of 12:23, 8 February 2016
basic_string substr( size_type pos = 0, size_type count = npos ) const; |
||
Returns a substring [pos, pos+count)
. If the requested substring extends past the end of the string, or if count == npos, the returned substring is [pos,
size()
-pos)
.
Contents |
Parameters
pos | - | position of the first character to include |
count | - | length of the substring |
Return value
- An empty string if pos ==
size()
. - String containing the substring
[pos, pos+count)
.
Exceptions
std::out_of_range if pos > size()
Complexity
Linear in count
Example
Run this code
#include <string> #include <iostream> int main() { std::string a = "0123456789abcdefghij"; std::string sub1 = a.substr(10); std::cout << sub1 << '\n'; std::string sub2 = a.substr(5, 3); std::cout << sub2 << '\n'; std::string sub3 = a.substr(12, 100); std::cout << sub3 << '\n'; std::string sub4 = a.substr(a.size()-3, 50); std::cout << sub4 << '\n'; }
Output:
abcdefghij 567 cdefghij hij
See also
copies characters (public member function) | |
returns the number of characters (public member function) | |
finds the first occurrence of the given substring (public member function) |