C++ 拆分字符串C++;

C++ 拆分字符串C++;,c++,string,visual-c++,split,C++,String,Visual C++,Split,可能重复: 我需要把我的绳子分开 1. StackOverflow 2. Sky 3. CLOUD 4. Sun 11. Moon 12.Star 进入 如何在C++中,在VB中,就要这样做< /P> string test= 1. StackOverflow string spliteed = test.split(.) 在C++中没有思想是如何实现的。Thx提示您的字符串似乎已经被拆分,您只是在删除数字。如果是这种情况,请使用boostregex(正则表达式)else来拆分字符串,您

可能重复:

我需要把我的绳子分开

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

<>如何在C++中,在VB中,就要这样做< /P>
string test= 1. StackOverflow
 string spliteed = test.split(.)

在C++中没有思想是如何实现的。Thx提示

您的字符串似乎已经被拆分,您只是在删除数字。如果是这种情况,请使用boostregex(正则表达式)else来拆分字符串,您可以使用boostsplit函数。Boost是C++中的一组库。使用谷歌搜索。

您可以使用
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;
}
#包括
#包括
#包括
使用名称空间std;
int main(int argc,char*argv[])
{
string str=“1.sky”;
stringstream sstr(str);
int i;
字符c;
字符串s;
sstr>>i>>c>>s;

难道我不同意这与上面提到的问题几乎是重复的。似乎你想从字符串中提取数字?而且,你的vb示例看起来不正确,为什么
test=1.sky
你的字符串以字母
1.Stackoverflow
开头?Thx.between if string str=“1.sky BLUE”s将等于天空。如何成为天空蓝井,你可以连续阅读:
sstr>>i>>c;而(sstr>>s){//用s做点什么}
。提取所有单词后,循环将终止。
#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;
}