Ở đây chúng ta sẽ thấy cách thay thế một phần của chuỗi bằng một chuỗi khác trong C++. Trong C++, việc thay thế rất dễ dàng. Có một hàm gọi là string.replace(). Hàm replace này chỉ thay thế lần xuất hiện đầu tiên của chuỗi khớp. Để làm cho tất cả các lần xuất hiện, chúng ta sử dụng vòng lặp. Hàm replace này nhận chỉ số bắt đầu thay thế, độ dài của chuỗi, và chuỗi sẽ được đặt vào vị trí của chuỗi khớp.
Đầu vào: Một chuỗi "Hello...Here all Hello will be replaced", và chuỗi thay thế "ABCDE" Đầu ra: "ABCDE...Here all ABCDE will be replaced"
Thuật toán
Bước 1: Lấy chuỗi chính, chuỗi sẽ bị thay thế. Và chuỗi khớp
Bước 2: Khi chuỗi khớp hiện diện trong chuỗi chính:
Bước 2.1: Thay thế nó bằng chuỗi cho trước.
Bước 3: Trả về chuỗi đã sửa đổiMã ví dụ
#include<iostream>
using namespace std;
main() {
int index;
string my_str = "Hello...Here all Hello will be replaced";
string sub_str = "ABCDE";
cout << "Chuỗi ban đầu: " << my_str << endl;
//thay thế tất cả Hello bằng welcome
while((index = my_str.find("Hello")) != string::npos) {
//với mỗi vị trí tìm thấy Hello
my_str.replace(index, sub_str.length(), sub_str); //xóa và thay thế từ vị trí đó
}
cout << "Chuỗi cuối cùng: " << my_str;
}Kết quả
Chuỗi ban đầu: Hello...Here all Hello will be replaced Chuỗi cuối cùng: ABCDE...Here all ABCDE will be replaced