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

Bagaimana untuk Memisahkan Rentetan dengan Berbilang Pembatas dalam C?

Barbara Streisand
Barbara Streisandasal
2024-11-21 18:03:10386semak imbas

How to Split Strings with Multiple Delimiters in C  ?

Memisahkan Rentetan dengan Berbilang Pembatas

Apabila bekerja dengan teks, selalunya perlu membahagikan rentetan kepada perkataan atau token individu. Dalam kes di mana satu pembatas tidak mencukupi, berikut ialah cara menggunakan berbilang pembatas untuk mencapai tugas ini.

Dengan mengandaikan salah satu pembatas ialah aksara baris baharu, coretan kod berikut menunjukkan cara membaca teks daripada aliran rentetan, berpecah ia menjadi baris, dan bahagikan lagi setiap baris berdasarkan pembatas yang ditetapkan.

std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line)) 
{
    std::size_t prev = 0, pos;
    while ((pos = line.find_first_of(" ';", 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));
}

Dalam kod ini, rentetan baris dibaca dan seterusnya diproses. Fungsi find_first_of digunakan untuk mencari kejadian pertama mana-mana aksara dalam rentetan pembatas yang ditentukan (" ';" dalam kes ini). Perkataan diekstrak antara pembatas, dan perkataan di awal atau akhir baris juga ditangkap. Token kemudiannya ditambahkan pada wordVector.

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

Kenyataan:
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