std::basic_string<CharT,Traits,Allocator>::ends_with

< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
constexpr bool ends_with( std::basic_string_view<CharT,Traits> sv )
    const noexcept;
(1) (C++20 起)
constexpr bool ends_with( CharT c ) const noexcept;
(2) (C++20 起)
constexpr bool ends_with( const CharT* s ) const;
(3) (C++20 起)

检查 string 是否终于给定后缀。后缀可为以下之一:

1) string_view sv (可以是从另一 std::basic_string 隐式转换的结果)。
2) 单个字符 c
3) 空终止字符串 s

所有三个重载等效地返回 std::basic_string_view<CharT, Traits>(data(), size()).ends_with(x) ,其中 x 是参数。

参数

sv - string_view ,可为从另一 std::basic_string 隐式转换的结果
c - 单个字符
s - 空终止字符串

返回值

若 string 终于给定后缀则为 true ,否则为 false

示例

#include <iostream>
#include <string_view>
#include <string>
 
template <typename SuffixType>
void test_suffix_print(const std::string& str, SuffixType suffix)
{
    std::cout << '\'' << str << "' ends with '" << suffix << "': " <<
        str.ends_with(suffix) << '\n';
}
 
int main()
{
    std::boolalpha(std::cout);    
    auto helloWorld = std::string("hello world");
 
    test_suffix_print(helloWorld, std::string_view("world"));
 
    test_suffix_print(helloWorld, std::string_view("goodby"));
 
    test_suffix_print(helloWorld, 'd');
 
    test_suffix_print(helloWorld, 'x');
}

输出:

'hello world' ends with 'world': true
'hello world' ends with 'goodby': false
'hello world' ends with 'd': true
'hello world' ends with 'x': false

参阅

检查 string 是否始于给定前缀
(公开成员函数)
检查 string_view 是否始于给定前缀
(std::basic_string_view<CharT,Traits> 的公开成员函数)
(C++20)
检查 string_view 是否终于给定后缀
(std::basic_string_view<CharT,Traits> 的公开成员函数)
比较二个字符串
(公开成员函数)
返回子串
(公开成员函数)