可能重复:
有没有办法从 C++ 中区分文件?
我有很长的文本字符串,我希望对其进行比较和修补。给定字符串 a 和 b:
string a = ...;
string b = ...;
string a_diff_b = create_patch(a,b);
string a2 = apply_patch(a_diff_b, b);
assert(a == a2);
如果a_diff_b
是人类可读的,那将是一个奖励。
实现这一点的一种方法是使用system(3)
从其中调用diff
和patch
shell 命令diffutils
并将它们传递给字符串。另一种方法是自己实现这些功能(我想原子地处理每一行,并使用标准编辑距离 n^3 算法逐行回溯)。
我想知道是否有人知道一个好的 Linux C 或 C++ 库可以在进程中完成这项工作?