`
bbsunchen
  • 浏览: 230658 次
  • 性别: Icon_minigender_1
  • 来自: 天朝帝都
社区版块
存档分类
最新评论

用标准库或者boost分割C++字符串

 
阅读更多

使用标准库

#include <iostream>
#include <vector>
#include <string>
#include <sstream>
using namespace std;

std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
	std::stringstream ss(s);
	std::string item;
	while (std::getline(ss, item, delim)) {
		if (!item.empty()){
			elems.push_back(item);
		}
	}
	return elems;
}

std::vector<std::string> split(const std::string &s, char delim) {
	std::vector<std::string> elems;
	split(s, delim, elems);
	return elems;
}

int main(){
	string s = "string	to	split a";
	vector<string> columns = split(s, '\t');
	for (vector<string>::iterator it = columns.begin(); it != columns.end(); it++){
		cout << *it << endl;
	}
	return 0;
}

 

 

使用boost 

#include <iostream>
#include <boost/algorithm/string.hpp>
#include <vector>
#include <string>
using namespace std;

int main(){
	string s = "string	to	split a";
	vector<string> strs;
	boost::split(strs, s , boost::is_any_of("\t"));
	for (vector<string>::iterator it = strs.begin(); it != strs.end(); it++){
		cout << *it << endl;
	}
	return 0;
}

 

0
0
分享到:
评论

相关推荐

    20120324_字符串分割(C++)1

    总的来说,C++提供了多种方式进行字符串分割,从标准库中的`strtok`函数,到STL提供的`find`和`substr`,再到Boost库的`tokenizer`,每种方法都有其适用的场景和特点。开发者可以根据实际需求选择最合适的字符串分割...

    超越C++标准库-boost程序库导论

    Boost库是一组免费且高质量的C++源代码库集合,旨在补充和完善C++标准库的功能,提供更加灵活、高效且易于使用的工具。Boost不仅帮助开发者解决实际问题,还促进了C++语言的发展,许多Boost库中的特性已经被纳入到...

    C++常用字符串分割方法实例汇总

    本文将详细介绍C++中的几种常用字符串分割方法,包括`strtok`函数、STL中的`find`和`substr`函数,以及Boost库提供的方法。 一、`strtok`函数进行字符串分割 `strtok`函数是C语言中用于字符串分割的标准库函数,但...

    C++标准库Boost程序库导论

    ### C++标准库Boost程序库导论 #### Boost简介 Boost是C++社区中的一个非常重要的开源项目集合,它提供了一系列高质量、经过广泛测试且具有良好文档支持的库。这些库扩展了C++标准库的功能,并提供了许多现代软件...

    C++的字符串分割函数的使用详解

    `strtok`函数是C++标准库中的一个函数,用于将字符串分解成多个子字符串。它的原型如下: ```cpp char *strtok(char *str, const char *delim); ``` 这个函数的作用是根据指定的分隔符`delim`将字符串`str`切割成...

    C++之BOOST字符串查找示例

    在C++编程中,Boost库是一个非常强大的工具集,它为C++标准库提供了许多扩展功能,包括字符串处理。在本示例中,我们将详细探讨如何使用Boost库进行字符串查找、判定以及替换操作。 首先,让我们看看`BOOST字符串...

    C++“准”标准库Boost简介.pdf

    2. **文本处理** - Boost.Tokenizer用于分割字符串,Boost.Regex支持正则表达式操作,而Boost.Spirit则是一个强大的解析器生成器,能处理复杂的语法分析任务。 3. **函数绑定与组合** - Boost.Bind允许函数对象的...

    VC 根据指定字符分割字符串.rar

    在实际项目中,除了`std::string`提供的方法,还可以使用C++标准库中的`std::getline`或者Boost库中的`boost::algorithm::split`等工具进行更复杂的字符串处理。学习和掌握这些方法对于提升VC++编程技能至关重要。

    解析SQL Server连接字符串信息 编程小实例,C++.net源代码编写

    在C++中,你可以使用类似的方法,但可能需要更复杂的字符串处理,因为C++的标准库没有内置正则表达式支持。你可能需要使用第三方库如Boost或者自定义的字符串分割函数。 理解并能够正确解析SQL Server的连接字符串...

    Boost_C++_库

    Boost C++库是一套功能强大、灵活多变的工具集合,旨在为C++开发者提供超出标准库范畴的强大功能。自1998年成立以来,Boost社区不断发展壮大,吸引了全球各地的C++开发者,共同致力于高质量库的开发和维护。这些库...

    Boost程序库完全开发指南.pdf

    字符串处理是C++中常见的需求,Boost提供了多种工具以方便字符串操作和处理,比如字符串转换、字符串分割等。正则表达式是处理文本的强大工具,Boost的正则表达式库为C++开发者提供了丰富的正则表达式操作功能,包括...

    字符串切割

    在实际应用中,如果你需要处理Unicode字符串,可能需要使用`wstring`或者特定的Unicode库,例如Windows平台下的`WideCharToMultiByte`和`MultiByteToWideChar`函数,或者使用支持Unicode的第三方库如Qt或ICU。...

    boost库简介

    常用于处理大型字符串、子串模糊查找、按某种格式 tokenize 字符串、或者基于某种规则修改字符串。 2.Boost.Spirit 库:是一个多用途的、递归的语法分析器生成框架,允许程序员直接在 C++ 代码里使用(近似于)...

    《C++String深入详解2.0版》PDF

    `std::string` 是 C++ 标准库中的一个类,用于处理字符串。它提供了一种更安全、更方便的方式来操作字符串数据,相比于 C 风格的字符数组,`std::string` 提供了更多的内置功能,可以有效地避免许多常见的编程错误。...

    boost_1_56_0

    6. **字符串处理**:Boost.String_algo库包含了一系列用于字符串操作的算法,如查找、替换、分割等,增强了C++标准库中的string类的功能。 7. **文件系统操作**:Boost.Filesystem库提供了跨平台的文件和目录操作...

    Boost 库中文版

    “Boost程序库完全开发指南:深入C++“准”标准库.pdf”这本书详细介绍了这些库的使用方法,通过实际案例解析了Boost库中的各个组件,适合C++开发者参考学习。阅读此书,不仅可以理解Boost库的原理,还能掌握如何在...

    《深入学习c++string》2.1版

    11. C++字符串使用的建议 在实际编程中,合理选择字符串操作方式,注意内存管理和效率,是使用`std::string`的关键。 以上内容是对C++ `std::string`的全面解析,包括了其基本操作、高级特性以及与其他库的结合...

    vc++识别字符串中的时间

    - 对于日期,我们可以使用字符串分割函数将日期分为月、日、年的部分,然后通过比较大小来确定正确的顺序。 - 对于时间,我们同样需要识别小时、分钟和可能存在的秒,并考虑AM/PM指示。 3. **时间转换**: - ...

    c++实现文本中单词和汉字的统计

    C++标准库提供了`&lt;string&gt;`头文件,它包含了`std::string`类,用于处理和操作字符串。我们可以用`std::getline`函数从输入流(如文件)中读取一行文本,然后通过`std::istringstream`来分割字符串,获取单个单词或...

Global site tag (gtag.js) - Google Analytics