##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

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

### [edit] Parameters

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

### [edit] Return value

String containing the substring `[pos, pos+count)`.

### [edit] Exceptions

std::out_of_range if pos >`size()`

### [edit] Complexity

Linear in `count`

### [edit] 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

### [edit] See also

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

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