| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Общие вопросы > Или лыжи не едут или я .... торможу |
| Автор: AlexNor 11.8.2004, 09:21 |
| Почему я не могу сделать следующее?: CString tmp = _T("ABC"); tmp[1] = '3'; компилятор ругается error C2106: '=' : left operand must be l-value получается я что по индексу не могу присвоить символ?? а как же тогда это сделать? |
| Автор: chipset 11.8.2004, 09:27 | ||||
| CString вероятно не перегружает оператор []. Юзай SetAt
Добавлено @ 09:29 Или пользуй std::string из STL, у него вроде перегружен этот оператор... Добавлено @ 09:29 Во всяком случае
|
| Автор: achmed 11.8.2004, 09:47 |
| CString поддерживает оператор [], дело в другом, в том что он возвращает, а возвращает он rvalue, т.е. символ, а в std::string operator[] возвращает lvalue, т.е. ссылку на символ. |
| Автор: mr.DUDA 11.8.2004, 18:30 |
| achmed правду говорит ! А чтобы обратиться к символу строки по индексу - надо сперва получить указатель на буфер (CString::GetBuffer), потом поработать с ним (как с обычным массивом символов) - и "вернуть" в строку (CString::ReleaseBuffer). |