Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?

Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?

Linda Hamilton
Lepaskan: 2024-11-11 04:03:03
asal
468 orang telah melayarinya

How to Split Strings with Multiple Delimiters?

Memisahkan Rentetan dengan Berbilang Pembatas [Pendua]

Dalam pemprosesan teks, keperluan sering timbul untuk membahagikan rentetan kepada perkataan atau token individu. Walaupun teknik pemisahan rentetan standard cemerlang dalam mengendalikan pembatas tunggal, tugas menjadi lebih mencabar dengan berbilang pembatas.

Masalah:

Memandangkan rentetan dan satu set pembatas, bagaimana bolehkah kita memisahkan rentetan kepada perkataan sambil mempertimbangkan semua pembatas yang ditentukan?

Penyelesaian:

Untuk memisahkan rentetan dengan berkesan menggunakan berbilang pembatas, kami memanfaatkan gabungan aliran rentetan dan operasi subrentetan. Berikut ialah versi ubah suai kod yang disediakan:

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) {
    std::size_t prev = 0, pos;
    auto delimiters = " ';";  // Customize delimiter string here
    while ((pos = line.find_first_of(delimiters, prev)) != std::string::npos) {
        if (pos > prev)
            wordVector.push_back(line.substr(prev, pos-prev));
        prev = pos+1;
    }
    if (prev < line.length())
        wordVector.push_back(line.substr(prev, std::string::npos));
}
Salin selepas log masuk

Penjelasan:

  • Kami mengulangi setiap baris dalam rentetan input menggunakan std::getline.
  • Untuk setiap baris, kami menggunakan std::find_first_of untuk mencari kedudukan pembatas pertama dalam baris.
  • Jika pembatas ditemui, kami menambah subrentetan antara pembatas sebelumnya dan pembatas semasa ke wordVector.
  • Kami kemudian mengemas kini sebelumnya untuk menunjuk kepada aksara selepas pembatas.
  • Selepas memproses keseluruhan baris, kami menambah subrentetan yang tinggal pada wordVector jika ia tidak kosong.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan