Есть ли способ, которым я могу удалить диапазон символов из CString?
Поскольку мы можем использовать функцию string.erase в std::string для удаления определенного диапазона символов, есть ли какая-либо функция, которую я могу использовать для удаления символов.
Например:
std::string string = "This is a test".
Я мог бы использовать
string.erase(2,(string.length()));
Есть ли подобный метод в CString?
Благодарю.
3 ответа
Существуют функции CString::Left() и CString::Right(). Альтернативой вашему коду будет:
CString result = string.Left(2);
Или, если вы хотите удалить символы в середине, вы можете использовать что-то вроде этого:
CString result = string.Left(removeStart) + string.Right(removeEnd);
Да, конечно. Взгляните на методы извлечения CString
Ваш фрагмент кода может быть достигнут
CString s = "This is a test".
s = s.Left(2);
ASSERT(s == "Th");
Чтобы удалить диапазон символов, чтобы сохранить первые m и последние n символов, вы можете сделать:
s = s.Left(m) + s.Right(n);
CString.Delete
возможно?
Документация: https://docs.microsoft.com/en-us/cpp/atl-mfc-shared/reference/cstringt-class#delete