首页 >后端开发 >C++ >如何使用 std::getline() 在 C 中将字符串拆分为标记?

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

Barbara Streisand
Barbara Streisand原创
2024-11-20 16:38:11766浏览

How to Split a String into Tokens in C   Using std::getline()?

使用 C std::string 分离字符串标记

这个问题解决了将 C std::string 拆分为多个标记的挑战,特别是使用分隔符“;”。虽然一些建议的解决方案涉及 Boost 等外部库,但该项目的指南禁止使用它们。因此,我们探索一种使用 C 标准库的更直接的方法。

一种有效的方法是利用 std::getline() 函数,它在指定分隔符方面提供了多功能性。在这种情况下,我们可以按如下方式实现标记化过程:

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

using namespace std;

int main() {
    vector<string> strings; // Vector to store split strings
    istringstream f("denmark;sweden;india;us"); // Input stringstream
    string s; // Variable to store individual strings

    while (getline(f, s, ';')) {
        cout << s << endl; // Display split string
        strings.push_back(s); // Store string in vector
    }
}

在此实现中,我们从输入字符串“denmark;sweden;india;us”创建一个字符串流。 std::getline() 函数用于迭代字符串流并检索由“;”分隔的标记。分隔符。每个检索到的标记都会被打印并添加到字符串向量中以供进一步处理。

通过采用这种方法,我们可以在不依赖外部库的情况下实现输入字符串的所需标记化,并遵循指定的准则。

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

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