# std::basic_string::substr

From cppreference.com
< cpp‎ | string‎ | basic string

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()``)`.

### Parameters

pos | - | position of the first character to include
count | - | length of the substring

### Return value

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";

        // count is npos, returns [pos, size())
        std::string sub1 = a.substr(10);
        std::cout << sub1 << '\n';

        // both pos and pos+count are within bounds, returns [pos, pos+count)
        std::string sub2 = a.substr(5, 3);
        std::cout << sub2 << '\n';

        // pos is within bounds, pos+count is not, returns [pos, size())
        std::string sub4 = a.substr(a.size()-3, 50);
        std::cout << sub4 << '\n';

        try {
            // pos is out of bounds, throws
            std::string sub5 = a.substr(a.size()+3, 50);
            std::cout << sub5 << '\n';
        } catch(const std::out_of_range& e) {
            std::cout << "pos exceeds string size\n";
        }
    }

Output:

    abcdefghij
    567
    hij
    pos exceeds string size

### See also

copy | copies characters (public member function)
size length | returns the number of characters (public member function)
find | find characters in the string (public member function)

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string/substr&oldid=92076"