函数返回两个字符串的第一个公共字符

Posted

技术标签:

【中文标题】函数返回两个字符串的第一个公共字符【英文标题】:Function return the first common characters of two strings 【发布时间】:2019-12-09 20:09:14 【问题描述】:

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

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

此函数接受字符串 x 和字符串 y 并返回包含“Hello”的字符串,这是差异之前的第一个常见字符。 如果字符串库中没有这样的函数,我能知道如何实现这样的函数吗?

【问题讨论】:

试试std::mismatch 谢谢你的作品 【参考方案1】:

您可能正在寻找的算法函数是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

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

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

【讨论】:

以上是关于函数返回两个字符串的第一个公共字符的主要内容,如果未能解决你的问题,请参考以下文章

Java中字符串数组中的最长公共前缀

牛客网在线编程:公共字符

2021-09-15:最长公共前缀。编写一个函数来查找字符串数组中的最长公共前缀,如果不存在公共前缀,返回空字符串 ““。力扣14。

Leetcode练习(Python):字符串类:第14题:最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。

Leetcode练习(Python):字符串类:第14题:最长公共前缀:编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。

C语言问题。。。strcmp怎么运用啊?