我有两个要比较的字符串: String
和 String:
。是否有一个库函数在传递这两个字符串时会返回 true,但如果 String
和 OtherString
则返回 false?
准确地说,我想知道一个字符串是否是另一个字符串的前缀。
原文由 fredley 发布,翻译遵循 CC BY-SA 4.0 许可协议
我有两个要比较的字符串: String
和 String:
。是否有一个库函数在传递这两个字符串时会返回 true,但如果 String
和 OtherString
则返回 false?
准确地说,我想知道一个字符串是否是另一个字符串的前缀。
原文由 fredley 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 C++20 之后,我们可以使用 starts_with 来检查字符串是否以给定的前缀开头。
str.starts_with(prefix)
另外,还有 ends_with 来检查后缀
原文由 RY_ Zheng 发布,翻译遵循 CC BY-SA 4.0 许可协议
3 回答1.1k 阅读✓ 已解决
1 回答975 阅读✓ 已解决
4 回答763 阅读
1 回答840 阅读
1 回答872 阅读
1 回答643 阅读
1 回答743 阅读
使用
std::mismatch
。将较短的字符串作为第一个迭代器范围传入,将较长的字符串作为第二个迭代器范围传入。返回的是一对迭代器,第一个是第一个范围内的迭代器,第二个是第二个范围内的迭代器。如果第一个是第一个范围的结尾,那么你知道短字符串是长字符串的前缀,例如