Skip to content

Commit 86e0fbf

Browse files
Tyler WhitneyTyler Whitney
authored andcommitted
draft
1 parent 9d5acf0 commit 86e0fbf

2 files changed

Lines changed: 224 additions & 8 deletions

File tree

docs/standard-library/basic-string-class.md

Lines changed: 114 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
---
22
title: "basic_string Class"
3-
ms.date: "11/12/2019"
4-
f1_keywords: ["xstring/std::basic_string", "xstring/std::basic_string::allocator_type", "xstring/std::basic_string::const_iterator", "xstring/std::basic_string::const_pointer", "xstring/std::basic_string::const_reference", "xstring/std::basic_string::const_reverse_iterator", "xstring/std::basic_string::difference_type", "xstring/std::basic_string::iterator", "xstring/std::basic_string::npos", "xstring/std::basic_string::pointer", "xstring/std::basic_string::reference", "xstring/std::basic_string::reverse_iterator", "xstring/std::basic_string::size_type", "xstring/std::basic_string::traits_type", "xstring/std::basic_string::value_type", "xstring/std::basic_string::append", "xstring/std::basic_string::assign", "xstring/std::basic_string::at", "xstring/std::basic_string::back", "xstring/std::basic_string::begin", "xstring/std::basic_string::c_str", "xstring/std::basic_string::capacity", "xstring/std::basic_string::cbegin", "xstring/std::basic_string::cend", "xstring/std::basic_string::clear", "xstring/std::basic_string::compare", "xstring/std::basic_string::copy", "xstring/std::basic_string::crbegin", "xstring/std::basic_string::crend", "xstring/std::basic_string::_Copy_s", "xstring/std::basic_string::data", "xstring/std::basic_string::empty", "xstring/std::basic_string::end", "xstring/std::basic_string::erase", "xstring/std::basic_string::find", "xstring/std::basic_string::find_first_not_of", "xstring/std::basic_string::find_first_of", "xstring/std::basic_string::find_last_not_of", "xstring/std::basic_string::find_last_of", "xstring/std::basic_string::front", "xstring/std::basic_string::get_allocator", "xstring/std::basic_string::insert", "xstring/std::basic_string::length", "xstring/std::basic_string::max_size", "xstring/std::basic_string::pop_back", "xstring/std::basic_string::push_back", "xstring/std::basic_string::rbegin", "xstring/std::basic_string::rend", "xstring/std::basic_string::replace", "xstring/std::basic_string::reserve", "xstring/std::basic_string::resize", "xstring/std::basic_string::rfind", "xstring/std::basic_string::shrink_to_fit", "xstring/std::basic_string::size", "xstring/std::basic_string::substr", "xstring/std::basic_string::swap"]
5-
helpviewer_keywords: ["std::basic_string [C++]", "std::basic_string [C++], allocator_type", "std::basic_string [C++], const_iterator", "std::basic_string [C++], const_pointer", "std::basic_string [C++], const_reference", "std::basic_string [C++], const_reverse_iterator", "std::basic_string [C++], difference_type", "std::basic_string [C++], iterator", "std::basic_string [C++], npos", "std::basic_string [C++], pointer", "std::basic_string [C++], reference", "std::basic_string [C++], reverse_iterator", "std::basic_string [C++], size_type", "std::basic_string [C++], traits_type", "std::basic_string [C++], value_type", "std::basic_string [C++], append", "std::basic_string [C++], assign", "std::basic_string [C++], at", "std::basic_string [C++], back", "std::basic_string [C++], begin", "std::basic_string [C++], c_str", "std::basic_string [C++], capacity", "std::basic_string [C++], cbegin", "std::basic_string [C++], cend", "std::basic_string [C++], clear", "std::basic_string [C++], compare", "std::basic_string [C++], copy", "std::basic_string [C++], crbegin", "std::basic_string [C++], crend", "std::basic_string [C++], _Copy_s", "std::basic_string [C++], data", "std::basic_string [C++], empty", "std::basic_string [C++], end", "std::basic_string [C++], erase", "std::basic_string [C++], find", "std::basic_string [C++], find_first_not_of", "std::basic_string [C++], find_first_of", "std::basic_string [C++], find_last_not_of", "std::basic_string [C++], find_last_of", "std::basic_string [C++], front", "std::basic_string [C++], get_allocator", "std::basic_string [C++], insert", "std::basic_string [C++], length", "std::basic_string [C++], max_size", "std::basic_string [C++], pop_back", "std::basic_string [C++], push_back", "std::basic_string [C++], rbegin", "std::basic_string [C++], rend", "std::basic_string [C++], replace", "std::basic_string [C++], reserve", "std::basic_string [C++], resize", "std::basic_string [C++], rfind", "std::basic_string [C++], shrink_to_fit", "std::basic_string [C++], size", "std::basic_string [C++], substr", "std::basic_string [C++], swap"]
3+
ms.date: "9/8/2020"
4+
f1_keywords: ["xstring/std::basic_string", "xstring/std::basic_string::allocator_type", "xstring/std::basic_string::const_iterator", "xstring/std::basic_string::const_pointer", "xstring/std::basic_string::const_reference", "xstring/std::basic_string::const_reverse_iterator", "xstring/std::basic_string::difference_type", "xstring/std::basic_string::iterator", "xstring/std::basic_string::npos", "xstring/std::basic_string::pointer", "xstring/std::basic_string::reference", "xstring/std::basic_string::reverse_iterator", "xstring/std::basic_string::size_type", "xstring/std::basic_string::traits_type", "xstring/std::basic_string::value_type", "xstring/std::basic_string::append", "xstring/std::basic_string::assign", "xstring/std::basic_string::at", "xstring/std::basic_string::back", "xstring/std::basic_string::begin", "xstring/std::basic_string::c_str", "xstring/std::basic_string::capacity", "xstring/std::basic_string::cbegin", "xstring/std::basic_string::cend", "xstring/std::basic_string::clear", "xstring/std::basic_string::compare", "xstring/std::basic_string::copy", "xstring/std::basic_string::crbegin", "xstring/std::basic_string::crend", "xstring/std::basic_string::_Copy_s", "xstring/std::basic_string::data", "xstring/std::basic_string::empty", "xstring/std::basic_string::end", "xstring/std::basic_string::erase", "xstring/std::basic_string::find", "xstring/std::basic_string::find_first_not_of", "xstring/std::basic_string::find_first_of", "xstring/std::basic_string::find_last_not_of", "xstring/std::basic_string::find_last_of", "xstring/std::basic_string::front", "xstring/std::basic_string::get_allocator", "xstring/std::basic_string::insert", "xstring/std::basic_string::length", "xstring/std::basic_string::max_size", "xstring/std::basic_string::pop_back", "xstring/std::basic_string::push_back", "xstring/std::basic_string::rbegin", "xstring/std::basic_string::rend", "xstring/std::basic_string::replace", "xstring/std::basic_string::reserve", "xstring/std::basic_string::resize", "xstring/std::basic_string::rfind", "xstring/std::basic_string::shrink_to_fit", "xstring/std::basic_string::size", "xstring/std::basic_string::substr", "xstring/std::basic_string::ends_with", "xstring/std::basic_string::starts_with", "xstring/std::basic_string::swap"]
5+
helpviewer_keywords: ["std::basic_string [C++]", "std::basic_string [C++], allocator_type", "std::basic_string [C++], const_iterator", "std::basic_string [C++], const_pointer", "std::basic_string [C++], const_reference", "std::basic_string [C++], const_reverse_iterator", "std::basic_string [C++], difference_type", "std::basic_string [C++], iterator", "std::basic_string [C++], npos", "std::basic_string [C++], pointer", "std::basic_string [C++], reference", "std::basic_string [C++], reverse_iterator", "std::basic_string [C++], size_type", "std::basic_string [C++], traits_type", "std::basic_string [C++], value_type", "std::basic_string [C++], append", "std::basic_string [C++], assign", "std::basic_string [C++], at", "std::basic_string [C++], back", "std::basic_string [C++], begin", "std::basic_string [C++], c_str", "std::basic_string [C++], capacity", "std::basic_string [C++], cbegin", "std::basic_string [C++], cend", "std::basic_string [C++], clear", "std::basic_string [C++], compare", "std::basic_string [C++], copy", "std::basic_string [C++], crbegin", "std::basic_string [C++], crend", "std::basic_string [C++], _Copy_s", "std::basic_string [C++], data", "std::basic_string [C++], empty", "std::basic_string [C++], end", "std::basic_string [C++], erase", "std::basic_string [C++], find", "std::basic_string [C++], find_first_not_of", "std::basic_string [C++], find_first_of", "std::basic_string [C++], find_last_not_of", "std::basic_string [C++], find_last_of", "std::basic_string [C++], front", "std::basic_string [C++], get_allocator", "std::basic_string [C++], insert", "std::basic_string [C++], length", "std::basic_string [C++], max_size", "std::basic_string [C++], pop_back", "std::basic_string [C++], push_back", "std::basic_string [C++], rbegin", "std::basic_string [C++], rend", "std::basic_string [C++], replace", "std::basic_string [C++], reserve", "std::basic_string [C++], resize", "std::basic_string [C++], rfind", "std::basic_string [C++], shrink_to_fit", "std::basic_string [C++], size", "std::basic_string [C++], starts_with", "std::basic_string [C++], ends_with","std::basic_string [C++], substr", "std::basic_string [C++], swap"]
66
ms.assetid: a9c3e0a2-39bf-4c8a-b093-9abe30839591
77
---
88
# basic_string Class
@@ -74,6 +74,7 @@ The type that represents the stored allocator object that encapsulates details a
7474
|[data](#data)|Converts the contents of a string into an array of characters.|
7575
|[empty](#empty)|Tests whether the string contains characters.|
7676
|[end](#end)|Returns an iterator that addresses the location succeeding the last element in a string.|
77+
|[ends_with](#ends_with)|Checks whether the string ends with the specified suffix.|
7778
|[erase](#erase)|Removes an element or a range of elements in a string from a specified position.|
7879
|[find](#find)|Searches a string in a forward direction for the first occurrence of a substring that matches a specified sequence of characters.|
7980
|[find_first_not_of](#find_first_not_of)|Searches through a string for the first character that isn't any element of a specified string.|
@@ -95,6 +96,7 @@ The type that represents the stored allocator object that encapsulates details a
9596
|[rfind](#rfind)|Searches a string in a backward direction for the first occurrence of a substring that matches a specified sequence of characters.|
9697
|[shrink_to_fit](#shrink_to_fit)|Discards the excess capacity of the string.|
9798
|[size](#size)|Returns the current number of elements in a string.|
99+
|[starts_with](#starts_with)|Checks whether the string starts with the specified prefix.|
98100
|[substr](#substr)|Copies a substring of at most some number of characters from a string beginning from a specified position.|
99101
|[swap](#swap)|Exchange the contents of two strings.|
100102
@@ -1778,6 +1780,61 @@ The modified string str1 is now: No way ouT.
17781780
The string str2 is empty.
17791781
```
17801782

1783+
## <a name="ends_with"></a> basic_string::ends_with
1784+
1785+
Checks whether the string ends with the specified suffix.
1786+
1787+
```cpp
1788+
NODISCARD bool ends_with(const basic_string_view Right) const noexcept;
1789+
NODISCARD bool ends_with(const T c) const noexcept;
1790+
NODISCARD bool ends_with(const T* const x) const noexcept;
1791+
```
1792+
1793+
### Parameters
1794+
1795+
*c*\
1796+
Single character suffix.
1797+
1798+
*right*\
1799+
A string view containing the suffix. Also accepts `std::basic_string`.
1800+
1801+
*x*\
1802+
Null-terminated character string containing the suffix.
1803+
1804+
### Return Value
1805+
1806+
`true` if the string ends with the specified suffix; `false` otherwise.
1807+
1808+
### Remarks
1809+
1810+
See [starts_with](#starts_with) to check if a string starts with the specified prefix.
1811+
1812+
### Example
1813+
1814+
```cpp
1815+
#include <string>
1816+
#include <iostream>
1817+
1818+
int main()
1819+
{
1820+
std::basic_string<char> str = "abcdefg";
1821+
1822+
std::cout << std::boolalpha << str.ends_with('g') << '\n';
1823+
std::cout << std::boolalpha << str.ends_with("efG") << '\n';
1824+
1825+
std::basic_string<char> str2 = "efg";
1826+
std::cout << std::boolalpha << str.ends_with(str2);
1827+
1828+
return 0;
1829+
}
1830+
```
1831+
1832+
```Output
1833+
true
1834+
false
1835+
true
1836+
```
1837+
17811838
## <a name="erase"></a> basic_string::erase
17821839

17831840
Removes an element or a range of elements in a string from a specified position.
@@ -4539,6 +4596,60 @@ The current size of string str1 is: 11.
45394596
The capacity of string str1 is: 15.
45404597
```
45414598

4599+
## <a name="starts_with"></a> basic_string::starts_with
4600+
4601+
Checks whether the string starts with the specified prefix.
4602+
4603+
```cpp
4604+
NODISCARD bool starts_with(const basic_string_view Right) const noexcept;
4605+
NODISCARD bool starts_with(const T c) const noexcept;
4606+
NODISCARD bool starts_with(const T* const x) const noexcept;
4607+
```
4608+
4609+
### Parameters
4610+
4611+
*c*\
4612+
Single character prefix.
4613+
4614+
*right*\
4615+
A string view containing the prefix. Also accepts `std::basic_string`.
4616+
4617+
*x*\
4618+
Null-terminated character string containing the prefix.
4619+
4620+
### Return Value
4621+
4622+
`true` if the string starts with the specified prefix; `false` otherwise.
4623+
4624+
### Remarks
4625+
4626+
See [ends_with](#ends_with) to see if a string ends with a postfix.
4627+
4628+
### Example
4629+
4630+
```cpp
4631+
#include <string>
4632+
#include <iostream>
4633+
4634+
int main()
4635+
{
4636+
std::basic_string<char> str = "abcdefg";
4637+
4638+
std::cout << std::boolalpha << str.starts_with('b') << '\n';
4639+
std::cout << std::boolalpha << str.starts_with("aBc") << '\n';
4640+
4641+
std::basic_string<char> str2 = "abc";
4642+
std::cout << std::boolalpha << str.starts_with(str2);
4643+
return 0;
4644+
}
4645+
```
4646+
4647+
```Output
4648+
false
4649+
false
4650+
true
4651+
```
4652+
45424653
## <a name="substr"></a> basic_string::substr
45434654

45444655
Copies a substring of at most some number of characters from a string beginning from a specified position.

0 commit comments

Comments
 (0)