It seems that stringstream could be used too.
Code:
#include <iostream>
#include <sstream>
#include <vector>
#include <string>
#include <algorithm>
#include <iterator>
void break_up(const std::string& s, char at, std::vector<std::string>& out)
{
std::stringstream stream(s);
std::string word;
while (getline(stream, word, at)) {
out.push_back(word);
}
}
int main(int argc, char *argv[])
{
std::string data("111001001110111010101110111011101110111|101011000010001010101000100000101010101|"
"101001001110011011101110111000101110111|101001001000001000100010101000101010001|1"
"11011101110111000101110111000101110111");
std::vector<std::string> fontMap;
break_up(data, '|', fontMap);
std::copy(fontMap.begin(), fontMap.end(), std::ostream_iterator<std::string>(std::cout, "\n"));
return 0;
}