Удалить первый и последний символ C++

Как удалить первый и последний символ из std:: string, я уже делаю следующий код.

но этот код выводит только последний символ

m_VirtualHostName = m_VirtualHostName.erase(m_VirtualHostName.size() - 1)

Как удалить первый символ тоже?

2 ответов


Ну, вы могли бы erase() первый символ тоже (обратите внимание, что erase() изменяет строку):

m_VirtualHostName.erase(0, 1);
m_VirtualHostName.erase(m_VirtualHostName.size() - 1);

но в этом случае более простой способ-взять подстроку:

m_VirtualHostName = m_VirtualHostName.substr(1, m_VirtualHostName.size() - 2);

будьте осторожны, чтобы проверить, что строка на самом деле имеет по крайней мере два символа в нем сначала...


мой основной переводчик отбивает начало и конец кавычек с

str->pop_back();
str->erase(str->begin());

конечно, я всегда ожидайте хорошо сформированных строк основного стиля, поэтому я прервусь с failed assert если нет:

assert(str->front() == '"' && str->back() == '"');

просто мои два цента.