Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Anda Boleh Memisahkan Rentetan dengan Berbilang Pembatas dalam C ?

Bagaimanakah Anda Boleh Memisahkan Rentetan dengan Berbilang Pembatas dalam C ?

DDD
DDDasal
2024-11-16 15:58:03111semak imbas

How Can You Split Strings with Multiple Delimiters in C  ?

Memisahkan Rentetan dengan Berbilang Pembatas

Apabila ditugaskan untuk membahagikan teks kepada unit yang bermakna, pembangun sering menghadapi keperluan untuk memisahkan rentetan menjadi perkataan. Walaupun kaedah konvensional mencukupi untuk pembatas tunggal, apakah pilihan yang tersedia apabila berbilang pembatas terlibat?

Untuk menangani cabaran ini, teknik menggunakan berbilang pembatas untuk pemisahan rentetan boleh dilaksanakan. Mari kita mendalami penyelesaiannya.

Dalam C , sintaks untuk menghuraikan rentetan dengan pembatas tunggal menggunakan aliran rentetan adalah seperti berikut:

std::stringstream stringStream(inputString);
std::string word;
while(std::getline(stringStream, word, delimiter)) 
{
    wordVector.push_back(word);
}

Untuk menampung berbilang pembatas, kita mula-mula membaca keseluruhan baris menjadi penimbal. Selepas itu, kami mengulangi baris, mengenal pasti kedudukan di mana mana-mana pembatas yang ditentukan muncul. Dengan menolak kedudukan sebelumnya daripada kedudukan pembatas semasa, kita memperoleh subrentetan yang mewakili perkataan dan menambahnya pada vektor perkataan.

Sebagai contoh, jika kita memilih ruang, apostrof dan koma bertindih sebagai pembatas, kod berikut menyelesaikan tugas:

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));
}

Atas ialah kandungan terperinci Bagaimanakah Anda Boleh 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