在本文中,我们将通过 C++ 20 中的示例讨论starts_with()和ends_with() 。
以。。开始()
此函数有效地检查字符串是否以给定的前缀开头。此函数以 std::basic_string 和 std::basic_string_view 编写。
句法:
template
在上述语法中,前缀可以是:
- 字符串
- 字符串视图
- 单个字符或带有空终止字符的C 样式字符串
starts_with() 具有不同类型的前缀:
bool starts_with(std::basic_string_view
bool starts_with(CharT x) const noexcept;
bool starts_with(const CharT *x) const;
该函数的所有三种重载形式都有效地返回 std::basic_string_view
参数:它需要单个字符序列或单个字符来与字符串的开头进行比较。
返回值:它返回布尔值 true 或 false 指示,如下所示:
- True:如果字符串以前缀开头。
- False:如果字符串不以前缀开头。
方案一:
下面的程序演示了C++中starts_with()的概念:
C++
// C++ program to illustrate the use
// of starts_with()
#include
#include
#include
using namespace std;
// Function template to check if the
// given string starts with the given
// prefix or not
template
void if_prefix(const std::string& str,
PrefixType prefix)
{
cout << "'" << str << "' starts with '"
<< prefix << "': "
<< str.starts_with(prefix)
<< endl;
}
// Driver Code
int main()
{
string str = { "geeksforgeeks" };
if_prefix(str, string("geek"));
// prefix is string
if_prefix(str, string_view("geek"));
// prefix is string view
if_prefix(str, 'g');
// prefix is single character
if_prefix(str, "geek\0");
// prefix is C-style string
if_prefix(str, string("for"));
if_prefix(str, string("Geek"));
if_prefix(str, 'x');
return 0;
}
C++
// C++ program to illustrate the use
// of ends_with()
#include
#include
#include
using namespace std;
// Function template to check if the
// given string ends_with given string
template
void if_suffix(const std::string& str,
SuffixType suffix)
{
cout << "'" << str << "' ends with '" << suffix << "': " << str.ends_with(suffix) << std::endl;
}
// Driver Code
int main()
{
string str = { "geeksforgeeks" };
if_suffix(str, string("geeks"));
// suffix is string
if_suffix(str, string_view("geeks"));
// suffix is string view
if_suffix(str, 's');
// suffix is single character
if_suffix(str,
"geeks\0");
// suffix is C-style string
if_suffix(str, string("for"));
if_suffix(str, string("Geeks"));
if_suffix(str, 'x');
if_suffix(str, '\0');
}
输出:
此函数有效地检查字符串是否以给定的后缀结尾。此函数以 std::basic_string 和 std::basic_string_view 编写。
句法:
template
在上述语法中,后缀可以是:
- 字符串
- 字符串视图
- 单个字符或带有空终止字符的C 样式字符串。
以() 不同类型的后缀结尾:
constexpr bool ends_with(std::basic_string_view
constexpr boll ends_with(CharT c) const noexcept;
constexpr bool ends_with(const CharT* s) const;
该函数的所有三种重载形式都有效地返回 std::basic_string_view
参数:它需要单个字符序列或单个字符来与字符串的结尾进行比较。
返回值:它返回布尔值 true 或 false,指示以下内容:
- True:如果字符串以后缀结尾。
- False:如果字符串不以后缀结尾。
方案二:
下面的程序演示了 C++ 中的Ends_with()概念:
C++
// C++ program to illustrate the use
// of ends_with()
#include
#include
#include
using namespace std;
// Function template to check if the
// given string ends_with given string
template
void if_suffix(const std::string& str,
SuffixType suffix)
{
cout << "'" << str << "' ends with '" << suffix << "': " << str.ends_with(suffix) << std::endl;
}
// Driver Code
int main()
{
string str = { "geeksforgeeks" };
if_suffix(str, string("geeks"));
// suffix is string
if_suffix(str, string_view("geeks"));
// suffix is string view
if_suffix(str, 's');
// suffix is single character
if_suffix(str,
"geeks\0");
// suffix is C-style string
if_suffix(str, string("for"));
if_suffix(str, string("Geeks"));
if_suffix(str, 'x');
if_suffix(str, '\0');
}
输出: