gpt4 book ai didi

c++ - 如何正确标记字符串

转载 作者:行者123 更新时间:2023-11-30 01:44:26 24 4
gpt4 key购买 nike

我正在寻找与 sscanf 等效的 C++。

  string a,b,c;
string line = "data1,data2,data3";

如何将 data1 分配给 "a",将 data2 分配给 bdata3 c

最佳答案

如果你的分隔符是单个字符,你可以使用std::getlinestd::istringstream和自定义分隔符。

const auto text = std::string {"alpha,beta,gamma"};
const auto delim = ',';
auto token = std::string {};
auto iss = std::istringstream {text};
while (std::getline(iss, token, delim))
std::cout << "Parsed token: '" << token << "'\n";

或者您可以使用 regular expression .

const auto text = std::string {"alpha,beta,gamma"};
const auto pattern = std::regex {"[^,]+"};
const auto first = std::sregex_iterator {text.cbegin(), text.cend(), pattern};
const auto last = std::sregex_iterator {};
for (auto it = first; it != last; ++it)
std::cout << "Parsed token: '" << it->str() << "'\n";

这两种解决方案都可能比使用 std::sscanf 慢得多.

关于c++ - 如何正确标记字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36230006/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com