![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| OlgaKor |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.1.2003 Репутация: нет Всего: нет |
Расскажите (или скажите где можно прочитать) про работу со строковыми переменными в VC++ : разницу между const char, char, CString, char*, const char*, что такое strcpy(), и как конвертировать одно в другое, в каких случаях чем пользоваться. Например, в функциях типа itoa() и atoi() VC требует строгого соответствия с типом, описанном в MSDN, хотя по логике могут подходить и другие.
Любая информация про строковые переменные |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
нужно использовать преобразователи типов.
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Kefir |
|
|||
|
Unregistered |
Поскольку ты спрашиваешь разницу между char и char*, то видно, что ты плохо разбираешься в Си++, надыбай себе учебник по Си для начинающих, именно там есть ответы на все эти вопросы (кроме CString, но про этот класс всё написано на msdn.microsoft.com).
|
|||
|
||||
| OlgaKor |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 8.1.2003 Репутация: нет Всего: нет |
Хорошо, переформулирую:
Я бы с удовольствием всегда пользовалась CString, но например, в функции itoa(int, char *, int); средний параметр не может быть CString (пишет: cannot convert parameter 2 from 'class CString' to 'char') почему? И еще, что такое LPCTSTR. Заранее благодарно. |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
LPSTR описан как
#define char* LPSTR то есть как указатель на символы сделано типа того для легкой смены .h файлов при не смене кода =) чтобы перевести СString в чары нужно использовать ОПЕРАТОР LPCTSTR
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
а зачем использовать itoa, если юзаем CString?
CString.Format ("%d", iSomeInt); -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| val |
|
|||
![]() Program developer ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 992 Регистрация: 14.1.2003 Где: г. Киев Репутация: нет Всего: 7 |
CString - это класс, описанный в MFC. Придется постоянно подключать эту библиотечку. Рекомендую разобраться с "char* String" этого должно хватить на весь С++...
-------------------- Терпимость - величайшее благо человечества... Ярчайший признак интеллекта – постоянно хорошее настроение… |
|||
|
||||
| Turboman |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 15 Регистрация: 11.12.2002 Где: Краснодар Репутация: нет Всего: нет |
Если надо-strex.h
Пригодится и СSTRING очень удобный тип и при желании конвертируется в любой другой |
||||
|
|||||
| Fantasist |
|
|||
|
Лентяй ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1517 Регистрация: 24.3.2002 Репутация: 4 Всего: 41 |
Не-а, лучше std::string -------------------- Волны гасят ветер... |
|||
|
||||
| Kefir |
|
|||
|
Unregistered |
Всё равно я за CString. хотя довольно часто юзаю простые char-ы.
|
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
А еще лучше писать на таком замечательном языке как Бейсик, желательно под ДОС - там указателей явных нет
ЗЫ И этот форум не понадобится -------------------- С уважением, А. Фролов. |
|||
|
||||
| Kefir |
|
|||
|
Unregistered |
что то я не верю что это лучше...
|
|||
|
||||
| Nastya |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1287 Регистрация: 27.3.2002 Где: Мариуполь Репутация: 5 Всего: 44 |
И так:
char - это один символ (1 байт информации) может принимать значение от 0 до 255 (ASCII - код символа) К работе со строками можно подходить с той точки зрания, что строка это массив символов. Поэтому строку можно описать так char str[255] - строка из 255 символов (естественно может быть любое другое количество. char str* - это указатель на символ (или на массив символов). Кроме того строка "должна" заканчиваться нуллевым символом \0, который рассматривается как признак конца строки, т.е. 'a' - один символ "a"- два символа a и \0. PCTSTR - говорит о том, что это должна быть именно строка, заканчивающаяся нулевым символом. CString - это класс, который предназначен облегчить работу со строками. 2OlgaKor надеюсь помогла, если не запутала еще сильней На самом деле, я считаю, что строки одна из тем С++, которые не выучишь пока не набъешь приличное количество "шишек" -------------------- Что бы понять рекурсию, надо понять рекурсию "Профессионал - это человек сделавший все возможные ошибки в очень узкой области". Н.Бор |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
В char могут храниться значения [-128;127]. (по умолчанию в VC)
А [0;255] - это unsigned char Тут, как говорят в Одессе, две большие разницы. -------------------- С уважением, А. Фролов. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |