To this:
string const convertTo7chars(string const & input) { string::size_type size = input.size(); if (size != 13 && size != 10 && size != 4) // Can't deal with it. return input; if (input[0] != '#') // Can't deal with it. return input; string format(input); switch (size) { case 13: format.erase(3, 2); format.erase(5, 2); format.erase(7, 2); break; case 10: format.erase(3, 1); format.erase(5, 1); format.erase(7, 1); break; case 4: format.insert(2, 1, '0'); format.insert(4, 1, '0'); format.append(1, '0'); break; } return format; } ( Another approach: ostringstream format; format << "#"; switch (size) { case 13: format << input.substr(1, 2) << input.substr(5, 2) << input.substr(9, 2); break; case 10: format << input.substr(1, 2) << input.substr(4, 2) << input.substr(7, 2); break; case 4: format << input[1] << '0' << input[2] << '0' << input[3] << '0'; break; } return format.str(); ) -- Lgb