Split en c++ avec les conteneurs standard

Contenu du snippet

Un simple Split en C++ (comme en PHP)...
Malheureusement je n'ai rien trouve de semblable sur le site...
Cette source utilise les conteneurs standards tels que les chaînes de caractères (string) et les tableaux à taille dynamique (vector)...
Et voila avec un petit exemple d'utilisation ...

Source / Exemple :


#include <iostream>
#include <vector>
#include <string>
#include <stdlib.h>

using namespace std;

int Split(vector<string>& vecteur, string chaine, char separateur)
{
	vecteur.clear();

	string::size_type stTemp = chaine.find(separateur);
	
	while(stTemp != string::npos)
	{
		vecteur.push_back(chaine.substr(0, stTemp));
		chaine = chaine.substr(stTemp + 1);
		stTemp = chaine.find(separateur);
	}
	
	vecteur.push_back(chaine);

	return vecteur.size();
}

int main()
{
	cout << "Test de split\n" << endl;

	string str = "Bonjour le monde ...";
	vector<string> VecStr;

	int nbTabl = Split(VecStr, str, ' ');

	cout << "Nb de parties : " << nbTabl << "\n" << endl;

	for(int i = 0; i < nbTabl; ++i)
	{
	    cout << i << " : '" << VecStr[i] << "'" << endl;
	}
	
	cout << endl;
	
	system("PAUSE");

	return 0;
}

Conclusion :


Résultats de la console :

Test de split

Nb de parties : 4

0 : 'Bonjour'
1 : 'le'
2 : 'monde'
3 : '...'

Appuyez sur une touche pour continuer...

A voir également