使用 Stringstream 分隔逗號分隔的字串
在 C 中,stringstream 是操作字串和擷取資料的強大工具。雖然它可以輕鬆分隔以空格分隔的字串,但逗號分隔的字串需要稍微修改一下方法。
原始方法:
以下程式碼示範了使用 stringstream的原始方法來分隔字串空格:
std::string str = "abc def,ghi"; std::stringstream ss(str); string token; while (ss >> token) { printf("%s\n", token.c_str()); }
輸出:
abc def,ghi
此方法無法分隔逗號分隔的標記,因為>> stringstream 中的運算符假定空格字元作為分隔符號。
修改方法:
要分隔逗號分隔的字串,我們可以利用 stringstream 提供的 getline() 函數。該函數允許我們讀取字串,直到遇到指定的分隔符號。以下是修改後的程式碼:
#include <iostream> #include <sstream> std::string input = "abc,def,ghi"; std::istringstream ss(input); std::string token; while(std::getline(ss, token, ',')) { std::cout << token << '\n'; }
輸出:
abc def ghi
解釋:
解釋:函數讀取輸入字串ss並提取一個標記,直到我們指定為的字元第一次出現為止分隔符號(這裡是逗號)。然後,它將提取的令牌分配給令牌字串,如果成功則傳回 true。透過重複呼叫 getline(),我們可以迭代輸入字串中以逗號分隔的標記。 這種方法有效地將逗號分隔的字串分隔為單獨的標記,從而允許在程式中進行進一步處理或操作。以上是如何使用 stringstream 在 C 中有效分隔逗號分隔的字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!