How to split a string by delimiter in C++

2 Answers

0 votes
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>

template<typename Out>
void split(const std::string &s, char delimiter, Out result)
{
	std::stringstream ss;
	ss.str(s);
	std::string item;

	while (std::getline(ss, item, delimiter))
		*(result++) = item;
}


std::vector<std::string> split(const std::string &s, char delimiter)
{
	std::vector<std::string> elements;
	split(s, delimiter, std::back_inserter(elements));

	return elements;
}

int main()
{
	std::string s = "c++ c c# java python php";
	
	std::vector<std::string> result = split(s, ' ');

	for (auto word = result.begin(); word != result.end(); word++)
		std::cout << *word << std::endl;

	return 0;
}



/*
run:

c++
c
c#
java
python
php

*/

 



answered Jun 13, 2017 by avibootz
0 votes
#include <iostream>
#include <iterator>
#include <sstream>
#include <vector>

template<typename Out>
void split(const std::string &s, char delimiter, Out result)
{
	std::stringstream ss;
	ss.str(s);
	std::string item;

	while (std::getline(ss, item, delimiter))
		*(result++) = item;
}


std::vector<std::string> split(const std::string &s, char delimiter)
{
	std::vector<std::string> elements;
	split(s, delimiter, std::back_inserter(elements));

	return elements;
}

int main()
{
	std::string s = "c++ c c# java python# php";
	
	std::vector<std::string> result = split(s, '#');

	for (auto word = result.begin(); word != result.end(); word++)
		std::cout << *word << std::endl;

	return 0;
}



/*
run:

c++ c c
java python
php

*/

 



answered Jun 13, 2017 by avibootz

Related questions

2 answers 122 views
1 answer 132 views
3 answers 129 views
1 answer 76 views
...