C++ 比较两个字符串(与GNU diff类似)

C++ 比较两个字符串(与GNU diff类似),c++,diff,C++,Diff,是否有任何开源项目或库能够像比较字符串那样比较两个字符串,但不启动外部进程,并且使用内存缓冲区而不是文件 也就是说,看起来像这个假设函数: comparison_result* diff(wchar_t *text1, wchar_t *text2); 我查看了,希望它在内部使用这样一个函数,但不幸的是,它是逐块读取文件,而不是将它们读入内存缓冲区并进行比较。代码本身相当复杂,我不能很好地理解它,更不用说重写它了 开源项目中是否有这样一个函数?diffutils程序/函数的源代码确实有点难以适

是否有任何开源项目或库能够像比较字符串那样比较两个字符串,但不启动外部进程,并且使用内存缓冲区而不是文件

也就是说,看起来像这个假设函数:

comparison_result* diff(wchar_t *text1, wchar_t *text2);
我查看了,希望它在内部使用这样一个函数,但不幸的是,它是逐块读取文件,而不是将它们读入内存缓冲区并进行比较。代码本身相当复杂,我不能很好地理解它,更不用说重写它了


开源项目中是否有这样一个函数?

diffutils程序/函数的源代码确实有点难以适应,因为它在比较算法期间使用了大量的文件部分缓冲

然而,diff实现的功能并不真正具有革命性,也不难复制。并在其他图书馆复制。例如,来自谷歌代码的库,它的API有点粗糙,但它似乎可以完成这项工作


另一种可能是将数据写入内存中的
文件*
缓冲区,然后使用diffutils函数读取和写入内存缓冲区中的数据。您可以使用创建这样的缓冲区。

您可以参考,其差异源代码位于。

.Neat,我不知道fmemopen。但它似乎在VisualStudio上不可用。它在MinGW中可用吗(我在Windows上)?google diff match补丁正是我所需要的,谢谢!