📜  C++20 中的starts_with() 和ends_with() 示例

📅  最后修改于: 2021-09-03 13:48:44             🧑  作者: Mango

在本文中,我们将通过 C++ 20 中的示例讨论starts_with()ends_with()

以。。开始()

此函数有效地检查字符串是否以给定的前缀开头。此函数以 std::basic_string 和 std::basic_string_view 编写。

句法:

在上述语法中,前缀可以是:

  • 字符串
  • 字符串视图
  • 单个字符或带有空终止字符的C 样式字符串

starts_with() 具有不同类型的前缀:

该函数的所有三种重载形式都有效地返回 std::basic_string_view(data(), size()).starts_with(x);

参数它需要单个字符序列或单个字符来与字符串的开头进行比较。

返回值:它返回布尔值 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 编写。

句法:

在上述语法中,后缀可以是:

  • 字符串
  • 字符串视图
  • 单个字符或带有空终止字符的C 样式字符串。

以() 不同类型的后缀结尾:

该函数的所有三种重载形式都有效地返回 std::basic_string_view(data(), size()).ends_with(x);

参数它需要单个字符序列或单个字符来与字符串的结尾进行比较。

返回值:它返回布尔值 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');
}

输出:

想要从精选的视频和练习题中学习,请查看C++ 基础课程,从基础到高级 C++ 和C++ STL 课程,了解基础加 STL。要完成从学习语言到 DS Algo 等的准备工作,请参阅完整的面试准备课程