thể trùng lặp:
Is there a way to diff files from C++?Thư viện Linux C hoặc C++ cho các chuỗi khác biệt và vá?
tôi có các chuỗi văn bản dài mà tôi muốn diff và vá. Điều đó được cung cấp cho chuỗi a và b:
string a = ...;
string b = ...;
string a_diff_b = create_patch(a,b);
string a2 = apply_patch(a_diff_b, b);
assert(a == a2);
Nếu có thể đọc được con người là tiền thưởng.
Một cách để thực hiện việc này là sử dụng system(3)
để gọi các lệnh gọi diff
và patch
trình bao từ diffutils
và đặt chúng vào các chuỗi. Một cách khác sẽ được thực hiện các chức năng bản thân mình (tôi đã suy nghĩ xử lý mỗi dòng nguyên tử và sử dụng thuật toán chỉnh sửa tiêu chuẩn khoảng cách n^3 linewise với backtracking).
Tôi đã tự hỏi liệu có ai biết thư viện Linux C hoặc C++ tốt sẽ thực hiện công việc trong quá trình không?
liên kết này có hữu ích không? http://www.codeproject.com/Articles/3666/Diff-tool – billz
Nếu bạn có thể nhúng Python vào ứng dụng của mình, [this] (http://docs.python.org/2/library/difflib.html) sẽ có ích. – user4815162342