對字串進行標記是程式設計中的基本操作。然而,當使用像 strtok() 這樣需要 char* 字串的 C 函數時,直接標記 std::string 可能會遇到挑戰。
要將 strtok() 與 std::string 結合使用,一種選擇是使用 .c_str() 將其轉換為 const char*。然而,這可能並不總是理想的,因為它提供了字串的唯讀表示。
更合適的解決方案是利用 std::istringstream 而不是 strtok( )。 std::istringstream 允許對 std::string 進行基於流的標記化。這是一個範例:
#include#include #include int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout 此程式碼從 std::string 建立一個 std::istringstream 並從中讀取標記,直到遇到指定的分隔符號(在本例中為「-」)。
其他選項
對於更高級的標記化功能,Boost 等庫提供了全面的解決方案,與 strtok() 相比,它們提供了更大的靈活性和功能。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3