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!