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