首頁 > 後端開發 > C++ > 如何高效、優雅地迭代字串中的單字?

如何高效、優雅地迭代字串中的單字?

Linda Hamilton
發布: 2024-12-24 22:31:16
原創
993 人瀏覽過

How Can I Efficiently and Elegantly Iterate Over Words in a String?

迭代字串:優雅與效率

迭代字串中的各個單詞,尤其是用空格分隔時,是一種常見的編程任務。雖然存在多種方法,但找到優雅且高效的解決方案可能具有挑戰性。

使用 StringStream 的當前方法

提供的範例使用字串流,但 OP 尋求更多優雅的解決方案。這個方法確實很健壯,但是涉及一些字元操作,不夠簡潔。

優雅的解決方案:分割字串

要實現優雅和高效,我們可以利用 C 的 split() 函數。此函數採用字串和分隔符號作為輸入,並傳回包含拆分詞的向量。

#include <vector>
#include <string>

template <typename Out>
void split(const std::string &s, char delim, Out result) {
    std::istringstream iss(s);
    std::string item;
    while (std::getline(iss, item, delim)) {
        *result++ = item;
    }
}

std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, std::back_inserter(elems));
    return elems;
}
登入後複製

此解決方案需要最少的程式碼並且易於理解。它只是將字串讀入字串流,並使用 getline() 函數使用指定的分隔符號來提取單字。然後,可以將分割後的字串儲存在向量中以供進一步處理。

但請記住,此解決方案不會跳過空白標記。如果需要去除空字串,可以對向量進行進一步的後處理。

以上是如何高效、優雅地迭代字串中的單字?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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