首页  >  文章  >  后端开发  >  如何使用 std::getline() 在 C 中使用标记分割字符串?

如何使用 std::getline() 在 C 中使用标记分割字符串?

Linda Hamilton
Linda Hamilton原创
2024-11-19 11:41:03608浏览

How can std::getline() be used to split strings with tokens in C  ?

使用 getline() 来分割带标记的字符串

在 C 中处理字符串时,有必要将它们分割成更小的段关于特定的分隔符。实现此目的的一种常见方法是使用 std::getline() 函数,它提供了一种灵活的方法来根据标记化分隔符提取子字符串。

在给定的场景中,我们有一个由分隔的单词组成的字符串通过分号,我们可以使用 std::getline() 有效地将字符串拆分为单独的组件。以下代码片段演示了如何实现这一点:

#include <sstream>
#include <iostream>
#include <vector>

using namespace std;

int main() {
    vector<string> strings;
    istringstream f("denmark;sweden;india;us");
    string s;    
    while (getline(f, s, ';')) {
        cout << s << endl;
        strings.push_back(s);
    }
}

在此代码中,我们首先创建一个向量来存储分割字符串。然后,我们将目标字符串“denmark;sweden;india;us”传递给 istringstream 对象,该对象允许我们将字符串视为流。

关键操作是使用 getline() 来提取子字符串直到到达流的末尾。 getline() 函数采用三个参数:输入流、对存储提取的子字符串的字符串的引用以及分隔符。在本例中,我们使用分号作为分隔符来分割每次出现的字符串。

在循环内,我们通过调用 getline() 检索每个子字符串并将其存储在字符串变量 s 中。然后,我们输出子字符串进行确认,并将其添加到字符串向量中进行进一步处理。

通过遵循这种方法,我们可以根据标记或分隔符有效地分割字符串,从而更容易根据需要处理各个片段.

以上是如何使用 std::getline() 在 C 中使用标记分割字符串?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn