MFC копировать определенные разделы CString - PullRequest
2 голосов
/ 18 июня 2009

Допустим, у меня есть переменная CString, содержащая строку «Боб Эванс». Я хочу скопировать из позиции 4 до конца исходной строки CString в новую строку CString, но у меня возникают проблемы с поиском примеров семантики для этого:

CString original("Bob Evans");
// Below is what I'm trying to do
// CString newStr = original.copy(4, original.GetLength());

Я также думал о копировании переменной original в строку STL C ++, но добиться этого тоже не так просто с точки зрения преобразования. Что бы вы посоветовали по этому поводу? Я мог бы сделать строку для хранения в строке STL для начала, но это было бы одним из последних средств, так как я не хотел реструктурировать большой объем кода просто для хранения данных в строке STL вместо CString. Заранее спасибо.

Ответы [ 2 ]

7 голосов
/ 18 июня 2009
newStr = original.Mid(4);
0 голосов
/ 18 июня 2009

Не так уж и сложно превратить CString в стандартную строку; единственное затруднение в том, что вы, вероятно, используете Unicode, если вы используете настройки по умолчанию для вашей программы MFC. Это означает, что вы захотите использовать std::wstring вместо std::string.

Я не проверял это, но я думаю, что конверсии по умолчанию позволят этому "просто работать". В противном случае приведите CString к LPCTSTR.

std::wstring copyOfOriginal(original);
...