c++如何分割字符串示例代码
来源:本站原创|时间:2020-01-10|栏目:C语言|点击: 次
话不多说,直接上代码
如果需要根据单一字符分割单词,直接用getline读取就好了,很简单
#include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; int main() { string words; vector<string> results; getline(cin, words); istringstream ss(words); while (!ss.eof()) { string word; getline(ss, word, ','); results.push_back(word); } for (auto item : results) { cout << item << " "; } }
如果是多种字符分割,比如,。!等等,就需要自己写一个类似于split的函数了:
#include <iostream> #include <vector> #include <string> #include <sstream> using namespace std; vector<char> is_any_of(string str) { vector<char> res; for (auto s : str) res.push_back(s); return res; } void split(vector<string>& result, string str, vector<char> delimiters) { result.clear(); auto start = 0; while (start < str.size()) { //根据多个分割符分割 auto itRes = str.find(delimiters[0], start); for (int i = 1; i < delimiters.size(); ++i) { auto it = str.find(delimiters[i],start); if (it < itRes) itRes = it; } if (itRes == string::npos) { result.push_back(str.substr(start, str.size() - start)); break; } result.push_back(str.substr(start, itRes - start)); start = itRes; ++start; } } int main() { string words; vector<string> result; getline(cin, words); split(result, words, is_any_of(", .?!")); for (auto item : result) { cout << item << ' '; } }
例如:输入hello world!Welcome to my blog,thank you!
以上就是c++如何分割字符串示例代码的全部内容,大家学会了吗?希望本文对大家使用C++的时候有所帮助。
您可能感兴趣的文章
- 04-02c语言没有round函数 round c语言
- 01-10如何判断一个数是否为2的幂次方?若是,并判断出来是多少次方
- 01-10深入理解C++中常见的关键字含义
- 01-10使用C++实现全排列算法的方法详解
- 01-10如何判断一个数是否为4的幂次方?若是,并判断出来是多少次方
- 01-10如何查看进程实际的内存占用情况详解
- 01-10c++中inline的用法分析
- 01-10如何寻找数组中的第二大数
- 01-10用C++实现DBSCAN聚类算法
- 01-10全排列算法的非递归实现与递归实现的方法(C++)
阅读排行
本栏相关
- 04-02c语言函数调用后清空内存 c语言调用
- 04-02func函数+在C语言 func函数在c语言中
- 04-02c语言的正则匹配函数 c语言正则表达
- 04-02c语言用函数写分段 用c语言表示分段
- 04-02c语言中对数函数的表达式 c语言中对
- 04-02c语言编写函数冒泡排序 c语言冒泡排
- 04-02c语言没有round函数 round c语言
- 04-02c语言分段函数怎么求 用c语言求分段
- 04-02C语言中怎么打出三角函数 c语言中怎
- 04-02c语言调用函数求fibo C语言调用函数求
随机阅读
- 01-10SublimeText编译C开发环境设置
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-10delphi制作wav文件的方法
- 01-10C#中split用法实例总结
- 01-11ajax实现页面的局部加载
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 04-02jquery与jsp,用jquery
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文