Difference between revisions of "cpp/string/basic string view/starts with"
From cppreference.com
< cpp | string | basic string view
m (~) |
m (@1@ s/x/sv, per talk & [https://eel.is/c++draft/string.view.template#string.view.ops-20]. 'x' was an original param name in <string_view>.) |
||
(9 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | {{cpp/string/basic_string_view/title | starts_with}} | + | {{cpp/string/basic_string_view/title|starts_with}} |
{{cpp/string/basic_string_view/navbar}} | {{cpp/string/basic_string_view/navbar}} | ||
{{dcl begin}} | {{dcl begin}} | ||
− | {{dcl | num=1 |since=c++20|1= | + | {{dcl|num=1|since=c++20|1= |
constexpr bool starts_with( basic_string_view sv ) const noexcept; | constexpr bool starts_with( basic_string_view sv ) const noexcept; | ||
}} | }} | ||
− | {{dcl | num=2 |since=c++20|1= | + | {{dcl|num=2|since=c++20|1= |
− | constexpr bool starts_with( CharT | + | constexpr bool starts_with( CharT ch ) const noexcept; |
}} | }} | ||
− | {{dcl | num=3 |since=c++20|1= | + | {{dcl|num=3|since=c++20|1= |
constexpr bool starts_with( const CharT* s ) const; | constexpr bool starts_with( const CharT* s ) const; | ||
}} | }} | ||
{{dcl end}} | {{dcl end}} | ||
− | Checks if the string view begins with the given prefix, where | + | Checks if the string view begins with the given prefix, where |
− | @1@ the prefix is a string view. Effectively returns {{c|1= | + | @1@ the prefix is a string view. Effectively returns {{c|1=basic_string_view(data(), std::min(size(), sv.size())) == sv}}. |
− | @2@ the prefix is a single character. Effectively returns {{c|1=!empty() && Traits::eq(front(), | + | @2@ the prefix is a single character. Effectively returns {{c|1=!empty() && Traits::eq(front(), ch)}}. |
− | @3@ the prefix is a null-terminated character string. Effectively returns {{c|1=starts_with(basic_string_view(s))}} | + | @3@ the prefix is a null-terminated character string. Effectively returns {{c|1=starts_with(basic_string_view(s))}}. |
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | sv | a string view which may be a result of implicit conversion from {{tt|std::basic_string}}}} | + | {{par|sv|a string view which may be a result of implicit conversion from {{tt|std::basic_string}}}} |
− | {{par | | + | {{par|ch|a single character}} |
− | {{par | s | a null-terminated character string}} | + | {{par|s|a null-terminated character string}} |
− | {{par end}} | + | {{par end}} |
===Return value=== | ===Return value=== | ||
{{c|true}} if the string view begins with the provided prefix, {{c|false}} otherwise. | {{c|true}} if the string view begins with the provided prefix, {{c|false}} otherwise. | ||
+ | |||
+ | ===Notes=== | ||
+ | {{feature test macro|__cpp_lib_starts_ends_with|String prefix and suffix checking: {{lc|starts_with()}} and {{lc|ends_with()}}|std=C++20|value=201711L}} | ||
===Example=== | ===Example=== | ||
− | {{example | + | {{example |
− | + | |code= | |
− | #include < | + | #include <cassert> |
#include <string_view> | #include <string_view> | ||
− | + | int main() | |
{ | { | ||
using namespace std::literals; | using namespace std::literals; | ||
− | + | assert | |
− | + | ("" | |
− | + | // (1) starts_with( basic_string_view ) | |
− | // | + | && "https://cppreference.com"sv.starts_with("http"sv) == true |
− | + | && "https://cppreference.com"sv.starts_with("ftp"sv) == false | |
− | + | ||
− | + | // (2) starts_with( CharT ) | |
− | // | + | && "C++20"sv.starts_with('C') == true |
− | + | && "C++20"sv.starts_with('J') == false | |
− | + | ||
− | + | // (3) starts_with( const CharT* ) | |
− | // | + | && std::string_view("string_view").starts_with("string") == true |
− | + | && std::string_view("string_view").starts_with("String") == false | |
− | + | ); | |
− | + | ||
} | } | ||
− | |||
− | |||
}} | }} | ||
===See also=== | ===See also=== | ||
− | |||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/string/basic_string_view/dsc ends_with}} | + | {{dsc inc|cpp/string/basic_string_view/dsc ends_with}} |
− | {{dsc inc | cpp/string/basic_string/dsc starts_with}} | + | {{dsc inc|cpp/string/basic_string/dsc starts_with}} |
− | {{dsc inc | cpp/string/basic_string/dsc ends_with}} | + | {{dsc inc|cpp/string/basic_string/dsc ends_with}} |
− | {{dsc inc | cpp/string/basic_string_view/dsc compare}} | + | {{dsc inc|cpp/string/basic_string/dsc contains}} |
+ | {{dsc inc|cpp/string/basic_string_view/dsc contains}} | ||
+ | {{dsc inc|cpp/string/basic_string_view/dsc compare}} | ||
{{dsc end}} | {{dsc end}} | ||
{{langlinks|de|es|fr|it|ja|pl|pt|ru|zh}} | {{langlinks|de|es|fr|it|ja|pl|pt|ru|zh}} |
Latest revision as of 12:45, 10 May 2024
constexpr bool starts_with( basic_string_view sv ) const noexcept; |
(1) | (since C++20) |
constexpr bool starts_with( CharT ch ) const noexcept; |
(2) | (since C++20) |
constexpr bool starts_with( const CharT* s ) const; |
(3) | (since C++20) |
Checks if the string view begins with the given prefix, where
1) the prefix is a string view. Effectively returns basic_string_view(data(), std::min(size(), sv.size())) == sv.
2) the prefix is a single character. Effectively returns !empty() && Traits::eq(front(), ch).
3) the prefix is a null-terminated character string. Effectively returns starts_with(basic_string_view(s)).
Contents |
[edit] Parameters
sv | - | a string view which may be a result of implicit conversion from std::basic_string
|
ch | - | a single character |
s | - | a null-terminated character string |
[edit] Return value
true if the string view begins with the provided prefix, false otherwise.
[edit] Notes
Feature-test macro | Value | Std | Feature |
---|---|---|---|
__cpp_lib_starts_ends_with |
201711L | (C++20) | String prefix and suffix checking: starts_with() and ends_with() |
[edit] Example
Run this code
#include <cassert> #include <string_view> int main() { using namespace std::literals; assert ("" // (1) starts_with( basic_string_view ) && "https://cppreference.com"sv.starts_with("http"sv) == true && "https://cppreference.com"sv.starts_with("ftp"sv) == false // (2) starts_with( CharT ) && "C++20"sv.starts_with('C') == true && "C++20"sv.starts_with('J') == false // (3) starts_with( const CharT* ) && std::string_view("string_view").starts_with("string") == true && std::string_view("string_view").starts_with("String") == false ); }
[edit] See also
(C++20) |
checks if the string view ends with the given suffix (public member function) |
(C++20) |
checks if the string starts with the given prefix (public member function of std::basic_string<CharT,Traits,Allocator> )
|
(C++20) |
checks if the string ends with the given suffix (public member function of std::basic_string<CharT,Traits,Allocator> )
|
(C++23) |
checks if the string contains the given substring or character (public member function of std::basic_string<CharT,Traits,Allocator> )
|
(C++23) |
checks if the string view contains the given substring or character (public member function) |
compares two views (public member function) |