Si desea eliminar todas las ocurrencias de la cadena, a continuación, puede utilizar la erase/remove idioma:
#include <algorithm>
s.erase(std::remove(s.begin(), s.end(), '\t'), s.end());
Si desea eliminar únicamente la pestaña en la inicio y final de la cadena, se podría utilizar el boost string algorithms:
#include <boost/algorithm/string.hpp>
boost::trim(s); // removes all leading and trailing white spaces
boost::trim_if(s, boost::is_any_of("\t")); // removes only tabs
Si se usa Boost es demasiado trabajo, puede rodar su propia función de cortar USI ng find_first_not_of
y find_last_not_of
métodos de cadena.
std::string::size_type begin = s.find_first_not_of("\t");
std::string::size_type end = s.find_last_not_of("\t");
std::string trimmed = s.substr(begin, end-begin + 1);
¿Quiere decir solo desde el principio o el final? O desde cualquier lugar de la cadena? ¿Debería dejarse "abc \ tdef" tal cual, o reducirse a "abcdef"? –
Debería haber sido más claro con esto, me refería a cualquier parte de la cadena. – AndyUK