可以使用多種方法來標記 std::string。一種常見的方法是使用 C 函數 strtok(),它將字元數組作為輸入,並根據指定的分隔符號將其分解為標記。然而,std::string 物件不能直接傳遞給 strtok(),因為它們不指向字元陣列。
為了克服這個限制,我們可以用另一種方法來標記 std::string。其中一種方法是使用 istringstream 對象,該物件可以透過將 std::string 傳遞給其建構函式來建立。然後,istringstream 物件可用於使用 getline() 函數從字串中讀取標記,該函數將分隔符號作為第二個參數。
#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; } return 0; }
在此範例中,istingstream 物件用於讀取std::string 將「some-text-to-tokenize」轉換為一系列標記,由「-」字元分隔。 getline() 函數用於從字串中提取每個標記,然後將標記列印到控制台。
使用 istringstream 的另一種方法是使用 Boost.Tokenizer 等實用程序,它提供一種更靈活和可自訂的字串標記方法。然而,istingstream 方法通常足以滿足基本的標記化需求。
以上是如何在不使用“strtok()”的情況下標記“std::string”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!