首頁 > 後端開發 > C++ > 如何使用 stringstream 在 C 中有效分隔逗號分隔的字串?

如何使用 stringstream 在 C 中有效分隔逗號分隔的字串?

Barbara Streisand
發布: 2024-11-23 07:18:16
原創
281 人瀏覽過

How Can I Efficiently Separate Comma-Delimited Strings in C   Using stringstream?

使用 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板