Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Đôi khi, cần phải quản lý một khối lượng lớn dữ liệu văn bản trong các lĩnh vực như ngôn ngữ học tính toán, học máy và phân tích dữ liệu. Vì vậy, trong C++, chuỗi và danh sách thường được sử dụng cho việc này. Có lẽ chúng ta cần loại bỏ sự xuất hiện ban đầu của một ký tự khỏi một chuỗi hoặc danh sách các ký tự. Trong suốt bài viết này, chúng ta sẽ xem xét các phương pháp thay thế để loại bỏ các phiên bản đầu tiên của ký tự khỏi chuỗi trong C++. Hàm này loại bỏ ký tự đầu tiên của nội dung chuỗi, khiến chuỗi trở nên ngắn hơn.

Ví dụ 1:Xóa ký tự đầu tiên khỏi chuỗi bằng phương thức eras() trong C++

Hàm string::erase là phương pháp được khuyến nghị để xóa các ký tự khỏi một chuỗi tại chỗ. Quá tải phạm vi được thể hiện trong chương trình C++ sau:

Hãy bắt đầu với chức năng chính của chương trình. Bên trong dấu ngoặc đơn của hàm chính, chúng tôi đã xác định một mẫu lớp tiêu chuẩn để biểu thị biến chuỗi là “StrValue”. Biến chuỗi “StrValue” được khởi tạo bằng chuỗi từ. Chúng tôi có một câu lệnh cout tiêu chuẩn sẽ in chuỗi khi nó được khởi tạo. Sau đó, chúng tôi thực hiện phương thức xóa trên chuỗi này, “StrValue”.

Trong phương thức xóa, chúng ta đã chuyển 0 và 1 làm đối số. Giá trị “0” là chỉ mục của ký tự đầu tiên trong chuỗi “StrValue” và giá trị “1” là ký tự đầu tiên được đặt trong chuỗi. Sau vị trí đã chỉ định, phương thức xóa sẽ xóa độ dài ký tự được cung cấp khỏi chuỗi. Cuối cùng chúng ta có câu lệnh print để in chuỗi sau khi bỏ ký tự đầu tiên.

#include
#bao gồm

int chính()
{
   std::string StrValue ="Chúc tôi hạnh phúc";

   std::cout <<"Chuỗi trước:" <

   StrValue.erase(0, 1);

   std::cout <<"Chuỗi sau:" <

   trả về 0;

Kết quả đầu ra sau đây cho thấy hoạt động của phương pháp xóa trên một chuỗi đã chỉ định. Như bạn có thể thấy, ký tự đầu tiên của chuỗi đã bị xóa:

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Ví dụ 2:Xóa ký tự đầu tiên khỏi chuỗi bằng phương thức Iterator trong C++

Một lựa chọn quá tải khác của phương thức eras() sẽ xóa iterator. Nó chấp nhận một iterator làm tham số và xóa ký tự được chỉ định bởi nó. Bỏ qua iterator trỏ đến ký tự đầu tiên của chuỗi, chúng ta có thể xóa ký tự đầu tiên của chuỗi.

Chúng tôi đã sử dụng phương pháp xóa trong chức năng chính của chương trình sau đây. Định dạng chuẩn của chuỗi đã được xác định trong hàm main. Biến chuỗi được tạo dưới dạng “StringIs” và được khởi tạo bằng các chuỗi ký tự. Đầu tiên, chúng ta đã in chuỗi trước khi áp dụng phương thức delete iterator.

Sau đó, chúng ta đã gọi phương thức xóa của chuỗi trước đó. Phương thức xóa có trình vòng lặp bắt đầu cho chuỗi “StrValue” và được sử dụng để trả về một trình vòng lặp trỏ đến ký tự đầu tiên của chuỗi. Khi ký tự đầu tiên được trả về, phương thức xóa sẽ xóa ký tự đó khỏi chuỗi. Sau đó, chuỗi sẽ được in, loại bỏ ký tự đầu tiên.

#include
#bao gồm

int chính()
{

   std::string StringIs ="Ví dụ lập trình";

   std::cout <<"Chuỗi trước:" <

   StringIs.erase(StringIs.begin());

   std::cout <<"Chuỗi sau:" <

   trả về 0;

Shell đã hiển thị đầu ra, hiển thị chuỗi trước phương thức delete iterator và sau khi ký tự đầu tiên bị xóa khỏi chuỗi.

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Ví dụ 3:Kiểm tra chuỗi trống để xóa ký tự đầu tiên khỏi chuỗi trong C++

Trước khi sử dụng hàm string::erase, hãy đảm bảo không có chuỗi trống. Nếu chuỗi đầu vào trống, chương trình sẽ đưa ra một ngoại lệ lỗi std::length.

Chương trình bao gồm hàm chính trong đó biến chuỗi “MyStr” được khai báo. Chuỗi cũng được khởi tạo bằng các ký tự chuỗi khi nó được khai báo. Giá trị chuỗi sẽ được in trên shell. Sau đó, chúng ta có câu lệnh if trong đó điều kiện được áp dụng trên chuỗi đã cho.

Chúng ta đã gọi phương thức rỗng bên trong điều kiện if để kiểm tra xem chuỗi có được trống hay không. Sau đó, phương thức lặp lặp xóa được sử dụng trên chuỗi và xóa ký tự đầu tiên khỏi chuỗi đã chỉ định. Chuỗi sẽ được in trên màn hình shell với ký tự đầu tiên bị xóa khỏi chuỗi.

#include
#bao gồm

int chính()
{

  std::string MyStr ="cầu vồng";

  std::cout <<"Chuỗi trước:" <

  if (!MyStr.empty()) {

     MyStr.erase(MyStr.begin());

 

  std::cout <<"Chuỗi ngay:" <

  trả về 0;

Chúng tôi đã có chuỗi đầu ra sau.

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Ví dụ 4:Xóa ký tự đầu tiên bằng ký tự trùng khớp trong C++

Bây giờ, chúng ta có một ví dụ để loại bỏ ký tự đầu tiên nếu nó tương ứng với một ký tự cụ thể, sử dụng cú pháp sau:

Biến chuỗi được khởi tạo với giá trị chuỗi và được gán tên “Tên” trong tệp main. Chúng ta đã hiển thị chuỗi bằng lệnh cout. Sau đó, chúng ta đã định nghĩa một biến khác, “ch”, với kiểu dữ liệu char. Biến char “ch” được gán một ký tự “k” khớp với ký tự đầu tiên của chuỗi trước đó.

Sau đó, câu lệnh if được sử dụng để kiểm tra điều kiện giá trị ký tự “k” khớp với giá trị ký tự đầu tiên của chuỗi. Chúng ta có hàm front(), được sử dụng để lấy ký tự đầu tiên trong tham chiếu của chuỗi. Sau đó, ký tự đầu tiên của chuỗi sẽ bị loại bỏ bằng cách sử dụng trình lặp xóa.

#include
#bao gồm

int chính()
{
  std::string Name ="Kalsoom";
  std::cout <<"Tên trước:" <

  char ch ='K';

  if (Name.front() ==ch) {

      Name.erase(Name.begin());
 

  std::cout <<"Đặt tên ngay:" <

  trả về 0;

Như bạn có thể thấy, ký tự đầu tiên bị xóa khỏi chuỗi như sau:

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Ví dụ 5:Xóa ký tự đầu tiên khỏi chuỗi bằng phương thức substr() trong C++

Chuỗi được sửa đổi bằng cách sử dụng phương thức string::erase tại chỗ. Sử dụng hàm string::substr, bạn có thể truy xuất một chuỗi trùng lặp mà không có ký tự cuối cùng.

Chúng tôi đã sử dụng hàm substr trên chuỗi “MyString” trong khối điều kiện if. Hàm substr đã chuyển vị trí ký tự đầu tiên và độ dài của chuỗi thành -1. Nó trả về một chuỗi mới được tạo từ đối tượng chuỗi người gọi có chứa các ký tự được chỉ định.

#include
#bao gồm

int chính()
{
  std::string MyString ="Đưa";

  std::cout <<"Chuỗi gốc:"<

  std::string n;

  if (!MyString.empty()) {

     n =MyString.substr(1, MyString.size() - 1);
 

  std::cout <<"Chuỗi đã thay đổi:" <

  trả về 0;

Phương thức substr đã loại bỏ lần xuất hiện đầu tiên của ký tự khỏi chuỗi, như được hiển thị trong shell sau:

Tách ký tự đầu tiên khỏi chuỗi một cách hiệu quả trong C++

Kết luận

Trong C++, chúng ta đã học các phương pháp thay thế để xóa ký tự đầu tiên khỏi chuỗi. Các phương thức này trả về cùng một kết quả nhưng triển khai khác nhau trong các chương trình C++. Đây là các phương thức C++ hiệu quả để xóa các phiên bản đầu tiên của một ký tự khỏi chuỗi. Chúng tôi hy vọng rằng những phương pháp này sẽ có ích cho bạn.