Cách Xóa ký tự trong string C++ Nhiều Cách làm

 

Hướng dẫn cách xóa string trong C++. Bạn sẽ học được cách sử dụng các hàm như hàm pop_back, hàm erase để xóa string trong C++ sau bài học này.

Chúng ta có 3 giải pháp để xóa string trong C + + như sau :

  • Hàm pop_back : Xóa ký tự cuối cùng trong string
  • Hàm erase: Xóa ký tự tại vị trí chỉ định
  • Hàm erase(first, last): Xóa các ký tự trong phạm vi chỉ định

Xóa ký tự cuối cùng trong string C++ bằng pop_back

Hàm pop_back là một hàm thành viên trong class std:string, có tác dụng xóa ký tự cuối cùng trong string cũng như giảm độ dài của nó đi một đơn vị.

Cú pháp sử dụng hàm pop_back để xóa ký tự cuối cùng trong string như sau:

Bạn đang đọc: Xóa ký tự trong string C++

str. pop_back ( ) ;

Trong đó str là tên string cần xóa ký tự cuối cùng. Lưu ý là ký tự cuối cùng ở đây không bao gồm ký tự kết thúc chuỗi \0.

Hàm pop_back thuộc kiểu void, do đó nó sẽ không trả giá trị. Bởi vậy nó sẽ xóa ký tự ở đầu cuối trong string chứ không trả về ký tự đó. Trong trường hợp muốn lấy ký tự ở đầu cuối trong string, hãy sử dụng tới hàm back để thay thế sửa chữa .

Ví dụ cụ thể:



int main ()
{
  std::string str ("Hello world");
  str.pop_back();
  std::cout << str;
  return 0;
}

Có thể thấy ký tự cuối cùng trong chuỗi là ký tự d đã bị xóa khỏi chuỗi ban đầu.

Xóa 1 ký tự trong string bằng hàm erase

Hàm erase là một hàm thành viên trong class std:string, có tác dụng xóa một hoặc nhiều ký tự trong string C++ cũng như làm giảm độ dài tương ứng của nó.

Để xóa 1 ký tự tại vị trí chỉ định trong string C++ bằng hàm erase chúng ta sử dụng cú pháp sau đây:

str.erase ( p ) ;

Trong đó str là string ban đầu, và p là trình lặp trỏ đến vị trí cần xóa trong string.

Ở đây trình lặp ( iterator ) là một vòng lặp có tính năng giống như con trỏ, giúp truy vấn đến những ký tự ở vị trí đơn cử trong string .Trong trường hợp cần chỉ đến vị trí index thứ n trong string, tất cả chúng ta sẽ viết trình lặp p như sau :

str.begin() + i

Trong đó str.begin() chỉ đến vị trí đầu tiên trong string, và i là index của vị trí ký tự cần chỉ đến.

Kết hợp lại thì công thức để xóa 1 ký tự vào vị trí chỉ định trong string C++ bằng hàm erase sẽ như sau:

str.erase ( str.begin ( ) + i ) ;

Ví dụ cụ thể:


using namespace std;
int main ()
{
    string str("Hello World");
    str.erase(str.begin() + 2);
    cout << str<<endl;

    str.erase(str.begin() + 6);
    cout << str;
    return 0;
}
</endl;

Kết quả:

Helo World
Helo Wrld

Xóa các ký tự trong một phạm vi chỉ định trong string C++

Chúng ta sử dụng hàm erase để xóa những ký tự trong một khoanh vùng phạm vi chỉ định trong string C + + với cú pháp sau đây :str.erase ( iterator_first, iterator_last ) ;

Trong đó str là chuỗi ban đầu, iterator_firstiterator_last là phạm vi cần xóa được chỉ định trong trình lặp trỏ đến vị trí cần xóa trong string.

Tương tự như khi xóa 1 ký tự thì cú pháp sử dụng thực tế để xóa các ký tự trong một phạm vi chỉ định trong string C++ bằng hàm erase sẽ là:

str.erase ( str.begin ( ) + start, str.begin ( ) + end ) ;

Trong đó startend là vị trí index của phạm vi xóa trong string.

Ví dụ cụ thể:


using namespace std;
int main ()
{
    string str("Hello World");

    
    str.erase(str.begin() + 1, str.begin() + 3);
    cout << str<<endl;

    
    str.erase(str.begin() + 2, str.begin() +5);
    cout << str;
    return 0;
}
</endl;

Kết quả:

Hlo World
Hlorld

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách xóa ký tự trong string C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.

Và hãy cùng khám phá những kỹ năng và kiến thức sâu hơn về C + + trong những bài học kinh nghiệm tiếp theo .

Xổ số miền Bắc