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

来自cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
成员函数
元素访问
迭代器
容量
操作
basic_string::contains
(C++23)
搜索
常量
推导指引 (C++17)
非成员函数
I/O
比较
(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20 前)(C++20)
数值转换
(C++11)(C++11)(C++11)
(C++11)(C++11)    
(C++11)(C++11)(C++11)
(C++11)
(C++11)
辅助类
 
constexpr bool contains( std::basic_string_view<CharT,Traits> sv )
    const noexcept;
(1) (C++23 起)
constexpr bool contains( CharT c ) const noexcept;
(2) (C++23 起)
constexpr bool contains( const CharT* s ) const;
(3) (C++23 起)

检查字符串是否含有给定子串。子串可以是下列三种之一:

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

所有三个重载都等价于 return find(x) != npos; ,其中 x 为参数。

参数

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

返回值

若字符串含有给定子串则为 true ,否则为 false

示例

#include <iostream>
#include <string_view>
#include <string>
 
template <typename SubstrType>
void test_substring_print(const std::string& str, SubstrType subs)
{
    std::cout << '\'' << str << "' contains '" << subs << "': " <<
        str.contains(subs) << '\n';
}
 
int main()
{
    std::boolalpha(std::cout);    
    auto helloWorld = std::string("hello world");
 
    test_substring_print(helloWorld, std::string_view("hello"));
 
    test_substring_print(helloWorld, std::string_view("goodbye"));
 
    test_substring_print(helloWorld, 'w');
 
    test_substring_print(helloWorld, 'x');
}

输出:

'hello world' contains 'hello': true
'hello world' contains 'goodbye': false
'hello world' contains 'w': true
'hello world' contains 'x': false

参阅

检查字符串是否始于给定前缀
(公开成员函数)
(C++20)
检查字符串是否终于给定后缀
(公开成员函数)
于字符串中寻找字符
(公开成员函数)
返回子串
(公开成员函数)