Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
WindSlasher
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 34
1

Ошибка при преобразовании AnsiString в char*

19.12.2013, 20:08. Просмотров 911. Ответов 10
Метки нет (Все метки)

C++
1
2
TDateTime tt = DateTimePicker1->Date;
char* proc_beggin_date = (DateToStr(tt)).c_str();
Почему в результате в строке proc_beggin_date находится что-то типо этого: 19.12.20[], вместо 19.12.2013?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.12.2013, 20:08
Ответы с готовыми решениями:

Ошибка cannon convert 'AnsiString' to 'char'
Помогите. пожалуйста. Пишу программу, нужно записать название команды и ее...

AnsiString в Char
Как строку AnsiString перенести в массив char?

Преобразование AnsiString в char
Есть следующий код: AnsiString s; char *str; ...

Копирование из char* в AnsiString
Имеется AnsiString S, char* C (большого размера массив), и int L - длинна слова...

Массив char в AnsiString
Здравствуйте. Пишу на 6ом билдере. Столкнулся со следующей проблемой. Есть...

10
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
19.12.2013, 23:11 2
в char* нельзя просто так присваивать =. Пользуйтесь strcpy
C++
1
strcpy(proc_beggin_date,(DateToStr(tt)).c_str());
Добавлено через 6 минут
Лучше так
C++
1
2
3
4
5
сhar* proc_beggin_date = new char[50]; // например 50
strcpy(proc_beggin_date,(DateToStr(tt)).c_str());
 
//  Не забывайте потом освободить память
delete [] proc_beggin_date;
1
WindSlasher
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 34
19.12.2013, 23:39  [ТС] 3
Kabak, проблему решил, заменив char* на string, но все равно спасибо. Учту на будущее.
0
SatanaXIII
Почетный модератор
Эксперт С++
5789 / 2786 / 383
Регистрация: 01.11.2011
Сообщений: 6,785
Завершенные тесты: 1
20.12.2013, 09:28 4
Цитата Сообщение от WindSlasher Посмотреть сообщение
на string
Вы же в билдере. Используйте String.
0
WindSlasher
0 / 0 / 0
Регистрация: 22.06.2013
Сообщений: 34
20.12.2013, 18:48  [ТС] 5
SatanaXIII, в чем преимущество String?
0
Avazart
Эксперт С++
7791 / 5691 / 560
Регистрация: 10.12.2010
Сообщений: 25,912
Записей в блоге: 17
20.12.2013, 22:09 6
Не важно что std::string или String, вопрос в том нафига тебе char* потребовался ?
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
21.12.2013, 01:14 7
Преимущество String в том, что вам не нужно париться по поводу выделения памяти и её освобождения. char* использовали "в древности" - BCB 6. Сейчас уже так практически не пишут. Во всяком случае, при использования RAD, родным форматом для строк считается String. Его и пользуют, чтобы сократить код и время на конвертацию в другие форматы строк.
0
Avazart
Эксперт С++
7791 / 5691 / 560
Регистрация: 10.12.2010
Сообщений: 25,912
Записей в блоге: 17
21.12.2013, 01:33 8
Цитата Сообщение от Kabak Посмотреть сообщение
Преимущество String в том, что вам не нужно париться по поводу выделения памяти и её освобождения. char* использовали "в древности" - BCB 6. Сейчас уже так практически не пишут. Во всяком случае, при использования RAD, родным форматом для строк считается String. Его и пользуют, чтобы сократить код и время на конвертацию в другие форматы строк.
Это что новенькое однако, сам придумал или кто подсказал?
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
21.12.2013, 11:57 9
Avazart , вас здесь никто не обижал. Знаете безошибочно ? - расскажите, а не язвите.
0
SatanaXIII
Почетный модератор
Эксперт С++
5789 / 2786 / 383
Регистрация: 01.11.2011
Сообщений: 6,785
Завершенные тесты: 1
21.12.2013, 17:36 10
Цитата Сообщение от Avazart Посмотреть сообщение
Не важно что std::string или String, вопрос в том нафига тебе char* потребовался ?
Это вопрос в самый корень.
Цитата Сообщение от Kabak Посмотреть сообщение
char* использовали "в древности" - BCB 6
Это неправильное утверждение.
Подойдите к деду и скажите: "ой, да ты воевал в древности".
С таким подходом можно сразу садиться за изучение си шарпа.
char это си. *рисует руками в воздухе большой круг* String это билдер. *показывает на конкретный предмет* То, что в билдере есть String не значит, что в нем нельзя или не нужно использовать char. Все для своих задач.
Цитата Сообщение от Kabak Посмотреть сообщение
Преимущество String в том, что вам не нужно париться по поводу выделения памяти и её освобождения
Изначально разговор зашел про string и String. Не помню чтобы из-под string надо было освобождать память.
0
Kabak
157 / 145 / 14
Регистрация: 03.02.2012
Сообщений: 651
Записей в блоге: 1
22.12.2013, 10:18 11
SatanaXIII, вы невнимательно прочитали моё утверждение. Именно об отсутствии нужды в выделении и освобождении памяти под String я и написал - как преимущество String.

char* удобен если нужно быстро работать с отдельными символами в строке. В этом преимущество char*
1
22.12.2013, 10:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.12.2013, 10:18

Ansistring в unsigned char
Как из AnsiString перевести в unsigned char определенной длины? unsigned char...

Конвертация из unsigned char в AnsiString
Приветствую всех. У меня возникла проблемка такая, в проге я работают с...

Как перевести из AnsiString в char?
Помогите, пожалуйста... Например если я пишу: val=Edit1->Text; Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru