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

📅  最后修改于: 2023-12-03 15:29:53.184000             🧑  作者: Mango

C++20 中的 starts_with() 和 ends_with()

在 C++20 中,标准库中新增了两个函数:starts_with()ends_with(),可用于检查一个字符串是否以指定的前缀或后缀开始或结束。本文将详细介绍这两个函数的用法和示例。

starts_with()

starts_with() 函数用于判断一个字符串是否以指定的前缀开始,函数的定义如下:

bool starts_with(const std::string& str, const std::string& prefix);

第一个参数是待检查的字符串,第二个参数是待检查的前缀。函数返回一个布尔值,表示待检查的字符串是否以指定的前缀开始。

以下是一个示例代码:

#include <string>
#include <iostream>

int main(){
   std::string str = "hello world";
   std::string prefix = "hello";
   if(str.starts_with(prefix)){
      std::cout << "str starts with prefix\n";
   }
   return 0;
}

这个示例中,我们首先定义了一个字符串 str,然后定义了一个前缀 prefix。我们使用 starts_with() 函数检查 str 是否以 prefix 开始,如果是则输出一条消息。

ends_with()

ends_with() 函数用于判断一个字符串是否以指定的后缀结束,函数的定义如下:

bool ends_with(const std::string& str, const std::string& suffix);

第一个参数是待检查的字符串,第二个参数是待检查的后缀。函数返回一个布尔值,表示待检查的字符串是否以指定的后缀结束。

以下是一个示例代码:

#include <string>
#include <iostream>

int main(){
   std::string str = "hello world";
   std::string suffix = "world";
   if(str.ends_with(suffix)){
      std::cout << "str ends with suffix\n";
   }
   return 0;
}

这个示例中,我们首先定义了一个字符串 str,然后定义了一个后缀 suffix。我们使用 ends_with() 函数检查 str 是否以 suffix 结束,如果是则输出一条消息。

需要注意的是,这两个函数都是区分大小写的。如果你需要不区分大小写的比较,可以先将字符串转换为小写或大写,再进行比较。

除了字符串以外,这两个函数还可以用于其他类型的容器,例如 std::vectorstd::array 等。在这些容器上使用这两个函数的用法和字符串类似,只需要把参数的类型改成对应的容器类型即可。

以上就是 C++20 中的 starts_with()ends_with() 函数的介绍和示例,希望可以对你有所帮助。