Есть ли способ, которым я могу удалить диапазон символов из 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

Другие вопросы по тегам