📅  最后修改于: 2023-12-03 15:37:34.383000             🧑  作者: Mango
在C++ 20中,字符串处理变得更加方便了,其中包括字符串开头和结尾的判断函数:starts_with()和ends_with()。这两个函数能够方便地帮助程序员进行字符串处理,让代码更加简洁和易于维护。
starts_with()是一个用于判断字符串的开头是否匹配给定字符序列的函数。它的函数签名如下:
template<class CharT, class Traits, class Allocator>
constexpr bool starts_with(
const std::basic_string<CharT, Traits, Allocator>& str,
const basic_string_view<CharT, Traits>& sv) noexcept;
其中,str是需要被查找的字符串,而sv是用于匹配的字符序列。函数返回一个bool值,表示匹配是否成功。
下面是一段示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, world!";
bool result1 = starts_with(str, "Hello");
bool result2 = starts_with(str, "world");
cout << "Result 1: " << result1 << endl; // Output: Result 1: 1
cout << "Result 2: " << result2 << endl; // Output: Result 2: 0
return 0;
}
在上面的示例代码中,我们使用了starts_with()函数来判断字符串是否以给定的字符序列开头。结果1为真,因为字符串str的开头是"Hello";结果2为假,因为它并不是以"world"开头的。
类似于starts_with(),ends_with()用于判断字符串的结尾是否匹配给定字符序列。它的函数签名如下:
template<class CharT, class Traits, class Allocator>
constexpr bool ends_with(
const std::basic_string<CharT, Traits, Allocator>& str,
const basic_string_view<CharT, Traits>& sv) noexcept;
其中,str是需要被查找的字符串,而sv是用于匹配的字符序列。函数返回一个bool值,表示匹配是否成功。
下面是一段示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "Hello, world!";
bool result1 = ends_with(str, "world!");
bool result2 = ends_with(str, "Hello");
cout << "Result 1: " << result1 << endl; // Output: Result 1: 1
cout << "Result 2: " << result2 << endl; // Output: Result 2: 0
return 0;
}
在上面的示例代码中,我们使用了ends_with()函数来判断字符串是否以给定的字符序列结尾。结果1为真,因为字符串str的结尾是"world!";结果2为假,因为它并不是以"Hello"结尾的。
通过使用starts_with()和ends_with()函数,我们可以很方便地对字符串进行处理。这两个函数也展示了C++ 20的新特性,许多其他的新特性也值得我们去了解了解。