根据字符串格式解析字符串 |如何

发布于 2024-11-07 21:00:10 字数 389 浏览 0 评论 0原文

我有 ;

 string  str = "";

在 str 中,我存储数据的形式如下“_ : _, _ ” “_”可以只是一个像“X”这样的单词,也可以是像“a sds 23 dsds 1”这样的单词的组合,

我希望他们将其解析为三个不同的字符串;

in str       : X:y dfj kd kk,sdd 12 89 ++
string parsed[i] ;
in parsed[0] : X
in parsed[1] : y dfj kd kk
in parsed[2] : sdd 12 89 ++

如何使用 c++ std::string 功能来做到这一点?

I have ;

 string  str = "";

in str, I store data is in following form "_ : _, _ "
"_" can be just a word like "X" or a composition of words like "a sds 23 dsds 1"

I want them parse it to three different string ;

in str       : X:y dfj kd kk,sdd 12 89 ++
string parsed[i] ;
in parsed[0] : X
in parsed[1] : y dfj kd kk
in parsed[2] : sdd 12 89 ++

How can I do that over using c++ std::string features ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

以歌曲疗慰 2024-11-14 21:00:10

您可以使用以下 std:string 方法分割字符串,例如:

size_t index1 = str.find( ":" ) + 1;
size_t index2 = str.find( ",", index1 ) + 1;

std::string sub1 = str.substr (0, index1-1);
std::string sub2 = str.substr (index1, index2-index1-1);
std::string sub3 = str.substr (index2, str.length()-index2);

You can split your string using the following std:string methods for example:

size_t index1 = str.find( ":" ) + 1;
size_t index2 = str.find( ",", index1 ) + 1;

std::string sub1 = str.substr (0, index1-1);
std::string sub2 = str.substr (index1, index2-index1-1);
std::string sub3 = str.substr (index2, str.length()-index2);
甜柠檬 2024-11-14 21:00:10

使用boost/algorithm/string.hpp

std::string str = "X:y dfj kd kk,sdd 12 89 ++"
std::vector<std::string> v;
boost::split(v, str, boost::is_any_of(":,"));

您还可以将其用于多字节字符串。

Using boost/algorithm/string.hpp

std::string str = "X:y dfj kd kk,sdd 12 89 ++"
std::vector<std::string> v;
boost::split(v, str, boost::is_any_of(":,"));

You can also use it for multibyte strings.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文