Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Tokenize `std::string` dengan Fungsi C?
Tokenizing rentetan ialah operasi asas dalam pengaturcaraan. Walau bagaimanapun, apabila bekerja dengan fungsi C seperti strtok(), yang memerlukan rentetan char*, token secara langsung std::string boleh dihadapi dengan cabaran.
Untuk menggunakan strtok() dengan std::string, satu pilihan ialah menukarnya kepada const char* menggunakan .c_str(). Walau bagaimanapun, ini mungkin tidak selalu diingini, kerana ia menyediakan perwakilan baca sahaja bagi rentetan.
Penyelesaian yang lebih sesuai ialah memanfaatkan std::istringstream dan bukannya strtok( ). std::istringstream membenarkan tokenisasi berasaskan strim bagi std::string. Berikut ialah contoh:
#include <iostream> #include <string> #include <sstream> int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout << token << std::endl; } }
Kod ini mencipta std::istringstream daripada std::string dan membaca token daripadanya sehingga ia menemui pembatas yang ditentukan ('-' dalam kes ini).
Untuk keupayaan tokenisasi yang lebih maju, perpustakaan seperti Boost menyediakan penyelesaian komprehensif yang menawarkan fleksibiliti dan ciri yang lebih besar berbanding strtok().
Atas ialah kandungan terperinci Bagaimana untuk Tokenize `std::string` dengan Fungsi C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!