c++ - C++ std::string 中是否有任何函数可以计算两个字符串的相同起始字符总数或任何最佳方法

标签 c++ string function count stl

E.

abcfgf
abdef

and=2 {"ab"是一个普通的起始字符}

最佳答案

你可以使用 std::mismatch ,它返回一对迭代器,指示序列开始不同的相应迭代器。

例如,要计算公共(public)前缀的长度,您可以执行以下操作:

#include <iostream>                                                                                                                                                                                         
#include <iterator>
#include <string>
#include <algorithm>
using namespace std;

int main() {
    const string l = "abcde", r = "abcdfgh";
    cout << distance(begin(l), mismatch(begin(l), end(l), begin(r)).first) << endl;
}

关于c++ - C++ std::string 中是否有任何函数可以计算两个字符串的相同起始字符总数或任何最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43953608/

相关文章:

c++ - 简单程序的错误输出

c++ - 我不知道这是什么(C++ 链接器错误)

javascript - 使用此代码在 JS 中查找字符串中最长的单词?

运行我的随机 ID 生成时出现 C++ 段错误

c - 在函数返回值上使用一元 & 运算符

C#/C++ pInvoke 技巧

java - 如何分别读取字符和整数

function - 如何跳过有错误的函数并继续使用Python中的下一个函数

javascript - 函数在 JS 华氏温度到摄氏度转换器中不起作用

c++ - 我可以使用 boost 运算符为类的 2 个对象(具有不同类型)生成比较函数吗?