函数返回两个字符串的第一个常用字符

Function return the first common characters of two strings

本文关键字:字符串 第一个 常用 字符 两个 返回 函数      更新时间:2023-10-16

C++ 的字符串库中是否有一个函数,它接受 2 个字符串并返回它们之间的第一个公共字符? 例如:

string x = "HelloWorld";
string y = "HelloFriends";

此函数采用字符串 x 和字符串 y,返回字符串包含"Hello",这是差分之前的第一个常见字符。 如果字符串库中没有这样的函数,我可以知道如何实现这样的函数吗?

您可能正在寻找的算法函数是 std::mismatch:

#include <algorithm>
#include <string>
#include <iostream>
int main()
{
std::string x = "HelloWorld"; 
std::string y = "HelloFriends";
auto pr = std::mismatch(x.begin(), x.end(), y.begin());
std::string out(x.begin(), pr.first);
std::cout << out;
}

输出:

Hello

请注意,如果您使用的是 14 C++之前的编译器,则需要检查第一个范围是否短于第二个范围。

最好阅读链接的页面,因为此函数增加了进一步的重载,具体取决于您使用C++的版本。