【问题标题】:Split String C++ [duplicate]拆分字符串C ++ [重复]
【发布时间】:2023-03-24 22:21:01
【问题描述】:

可能重复:
How to split a string in C++?

我需要将我的字符串拆分为

1. StackOverflow
2. Sky
3. CLOUD
4. Sun
11. Moon
12.Star

进入

StackOverflow
sky
cloud
sun
moon
star.

在C++中怎么做,在vb中应该是这样的

string test= 1. StackOverflow
 string spliteed = test.split(.)

不知道在 c++ 中是怎样的。谢谢建议

【问题讨论】:

  • 我同意这几乎是上述问题的重复。
  • 好像你想从字符串中提取数字?另外,您的 vb 示例看起来不正确,为什么 test=1.sky 您的字符串以字母 1.Stackoverflow 开头?

标签: c++ string visual-c++ split


【解决方案1】:

看来你的字符串已经被分割了,你只是删除了数字。如果是这种情况,请使用 Boost Regex(正则表达式)来拆分字符串,您可以使用 boost split 函数。 Boost 是一组 C++ 库。谷歌一下。

【讨论】:

    【解决方案2】:

    您可以使用stringstream 类来消费整数和点:

    #include <string>
    #include <iostream>
    #include <sstream>
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        string str = "1. sky";
        stringstream sstr(str);
        int i;
        char c;
        string s;
    
        sstr >> i >> c >> s;
        cout << s << endl;
    
        return 0;
    }
    

    【讨论】:

    • 谢谢。如果 string str= "1. SKY BLUE" 之间,s 将等于天空。如何变成天蓝色
    • 好吧,你可以继续阅读:sstr &gt;&gt; i &gt;&gt; c; while(sstr &gt;&gt; s) { // do something with s }。提取所有单词后,循环将终止。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-09-18
    • 2021-04-01
    • 2010-09-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-03
    相关资源
    最近更新 更多