拆分字符串C ++ [重复]
Posted
技术标签:
【中文标题】拆分字符串C ++ [重复]【英文标题】:Split String C++ [duplicate] 【发布时间】:2012-03-06 03:53:24 【问题描述】:可能重复:How to split a string in C++?
我需要将我的字符串拆分为
1. ***
2. Sky
3. CLOUD
4. Sun
11. Moon
12.Star
进入
***
sky
cloud
sun
moon
star.
在C++中怎么做,在vb中应该是这样的
string test= 1. ***
string spliteed = test.split(.)
不知道在 c++ 中是怎样的。谢谢建议
【问题讨论】:
我同意这几乎是上述问题的重复。 好像你想从字符串中提取数字?另外,您的 vb 示例看起来不正确,为什么test=1.sky
您的字符串以字母 1.***
开头?
【参考方案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 >> i >> c; while(sstr >> s) // do something with s
。提取所有单词后,循环将终止。以上是关于拆分字符串C ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章