01/10/2018, 00:23
Phương thức tìm kiếm find trong C++?
Cho 1 chuỗi: Hom nay troi kha dep
Sử dụng phương thức find tìm kiếm chữ H và h và thay nó thành kí tự ‘k’
chuỗi kết quả là: Kom nay troi kka dep
code của em
void ThayDoi(string &s)
{
int vitri = s.find('H');
while(vitri != -1)
{
s.replace(s.begin() + vitri ,s.begin() + vitri + 1, "k");
vitri = s.find('H', vitri + 1);
}
}
Em muốn hỏi là tìm cả chữ h thì cách ngắn gọn nhất là gì?
Em xin chân thành cảm ơn!
Chúc mọi người một ngày làm việc vui vẻ ạ!
Bài liên quan
Có hàm std::replace_if trong algorithm có thể giúp
điều kiện bắt dùng find bác ạ :’(
à em cảm ơn bác nhé ^^ thông não quá ^^
Nếu bắt buộc dùng hàm find thì với mình thì mình thấy cách trên tốt nhất r
Hóng cách giải tốt hơn
Vâng. em tìm hiểu hoài hàm find mà không đi tìm hiểu hàm thay thế
Sư huynh cho em hỏi là tham số truyền vào hàm replace_if(…, isH,…); chỗ isH tại sao isH lại không truyền vào tham số là 1 ký tự char??? em vẫn chưa hiểu lắm phần isH được truyền vào hàm replace_if.
Mong sư huynh giải đáp.
Em xin cảm ơn ạ
À tham số thứ 3 của replace_if yêu cầu truyền vào là một hàm kt xem giá trị đó có cần phải thay với tham số thứ 4 hay không.
Vì bạn cần là muốn thay ‘h’ hoặc ‘H’ nên mình viết vậy để đỡ gọi 2 hàm.
Tuy nhiên dùng 2 hàm std::replace thì cũng đc.
Thì khi đó tham số thứ 3 = giá trị muốn được replace.
http://www.cplusplus.com/reference/algorithm/replace/
Dạ em hiểu rồi ạ cảm ơn sư huynh nhiều ạ