Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/41: Рейтинг темы: голосов - 41, средняя оценка - 4.80
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1

Из char* в String

25.12.2009, 17:04. Показов 7787. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Кто знает способ как из char* сделать String???

есть некая функция
char *MoneyToStr(int m);
она создает строку (выделяет под нее память)и возврашает на нее указатель
Решение 1
C++
1
2
String s=MoneyToStr(20);
.......
при таком решении происходит утечка памяти

Решение 2
C++
1
2
3
4
char *r=MoneyToStr(20);
String s=r;
delete[] r;
..........
а при таком громоздкий код+лишняя переменная+время выполнения(за счет лишнего копирования строки)!!!!!!!!

у кого еще какие варианты?


P.S.: и еще вопросик- как в С++ Builder 2009 сделать чтобы String был равен AnsiString, а не UnicodeString???
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.12.2009, 17:04
Ответы с готовыми решениями:

String в char
#include <cstring> int n, flag; FILE *f; char s="PC.dat"; struct PC{ int Num; char tip; int taktch; int OZU; int...

Конвертация String и char
Всем добро!:senor: Проблема с конвертацией String и char, а именно вот таким способом я получаю индекс диска например диск "F"...

String to unsigned char[]
Всем привет. Что-то никак не могу придумать как преобразовать значения из Edit'ов в массив unsigned char. Задача такая - есть 8 Edit'ов и...

5
12 / 12 / 4
Регистрация: 14.12.2009
Сообщений: 33
25.12.2009, 19:41
попробуй так
C++
1
2
String s;
s.printf(MoneyToStr(20);
или так
C++
1
String s(MoneyToStr(20));
на второй вопрос попробуй так
C++
1
typedef AnsiString String;
Добавлено через 19 минут
или так на второй вопрос
C++
1
#define String AnsiString
0
 Аватар для Monte-Cristo
2816 / 1408 / 107
Регистрация: 07.03.2009
Сообщений: 4,446
26.12.2009, 14:54
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
еще вопросик- как в С++ Builder 2009 сделать чтобы String был равен AnsiString, а не UnicodeString???
По идеи в свойствах проекта должен быть пункт включения/выключения Unicode режима.


Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
+время выполнения(за счет лишнего копирования строки)!!!!!!!!
В любом случае будет происходить копирование строки - без этого не обойтись. Но я бы, просто сделал функцию MoneyToStr, которая бы возвращала String, а не char*, и тогда не надо было бы задумывать об утечки памяти
0
Evg
Эксперт CАвтор FAQ
 Аватар для Evg
21281 / 8305 / 637
Регистрация: 30.03.2009
Сообщений: 22,660
Записей в блоге: 30
26.12.2009, 16:04
Цитата Сообщение от MrAndrey_ka Посмотреть сообщение
она создает строку (выделяет под нее память)и возврашает на нее указатель
При таком подходе возможны только громоздкие решения, где в месте вызова твоей функции придётся освобождать память
0
 Аватар для MrAndrey_ka
79 / 79 / 20
Регистрация: 13.05.2009
Сообщений: 537
Записей в блоге: 1
27.12.2009, 17:28  [ТС]
По идеи в свойствах проекта должен быть пункт включения/выключения Unicode режима.
Да по идеи должен быть, но в реале его нет!!! (я уже все натройки проэкта раз 5 пересмотрел), может кото знает где именно?
на второй вопрос попробуй так
C++
1
typedef AnsiString String;
или так на второй вопрос
C++
1
#define String AnsiString
так не катит, в первом случае говорит что ллас уже обьявлен в модуле system
а во втором что не может инициализировать член класса здесь

дело в том что класс String описан вот так:
C++
1
2
3
4
5
#if defined(_DELPHI_STRING_UNICODE)
    typedef UnicodeString        String;           //
#else
    typedef AnsiString           String;           //
#endif
0
 Аватар для davian
4 / 4 / 2
Регистрация: 07.07.2009
Сообщений: 122
25.06.2012, 14:46
Самое элементарное решение:
C++
1
2
char *charVar = new char[255];
String str = String(charVar);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
25.06.2012, 14:46
Помогаю со студенческими работами здесь

Преобразовать String в char*
Добрый день! Подскажите пожалуйста, как можно преобразовать тип char? А именно: Есть строка кода char* X="Текст в виде пути на...

Перевести string to char
Вот есть некая переменная char a; в нее нужно забить то что я ввел, например в Edit1. Как єто сделать??

Char* to string и IntToHex
Всем доброго дня! Столкнулся с интересной проблемой. есть char* надо преобразовать в string и вывести hex кодами делаю это так ...

'C': String (HEX)->CHAR[]
Запутался в 2х соснах))) Ввожу с клавиатуры строку через gets(), строка представляет собой 6 байтовый HEX, ввожу 12 символов. 1 hex =...

Перевод String В Char
Необходимо перевести считаную строку с Edit1 в массив типа char для дальнейший обработки данной строки. Если есть другие способы данного...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru