Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.71
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
#1

UnicodeString to Array of char c++ builder - C++

05.02.2013, 02:11. Просмотров 1982. Ответов 21
Метки нет (Все метки)

Подскажите пожалуйста, каким образом можно посимвольно записать AnsiString в Array char.
Можно так же вариант и из файла.
Если не трудно, то можно ссылки на аналогичную тему.
Пролистал гугл, подходящего не нашел, к сожалению...

Необходимость заключается в том, чтобы перевернуть содержимое текста из компонента memo, либо файла.
Буду благодарен за помощь.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.02.2013, 02:11
Здравствуйте! Я подобрал для вас темы с ответами на вопрос UnicodeString to Array of char c++ builder (C++):

конвертировать UnicodeString в char* - C++
получилось вот так char* aa = (char*)(Edit1->Text).c_str(); какие есть еще варианты? спасибо

Cannot convert 'UnicodeString' to 'const char *' - C++
делаю локальную сеть, столкнулся с проблемой: addr.sin_addr.s_addr=inet_addr("192.168.0.3"); как сделать чтобы ip мог задать...

Cannot convert 'UnicodeString' to 'const char *' - C++
При написании программы столкнулся с проблемой. На этих строчках: char sFInName=STR_FILE_IN_NAME, sFOutName=STR_FILE_OUT_NAME,...

array char* to char* (значения массива указателей в один указатель) - C++
Как сложить(или вывести в формате char*) все значения массива указателей(char *) воедино, то есть сложить строки и назначить результату...

Char array - C++
написал такой код char Arry; for (int i = 0; i < 20; ++i) { for (int j = 0; j < 20; ++j) { Arry = {o}; ...

Uint в char array - C++
Привет, скажите как конвертировать for (unsigned int i = 0; i < 4294967295; i++) { char sample = "911"; //вот в таком виде из i...

21
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
06.02.2013, 01:46 #16
Цитата Сообщение от Jackbeat Посмотреть сообщение
В общем получилось как-то так, но вывод очень кривой.
C++
1
2
3
4
5
6
char * str1 = new char [str.Length()+1]; // Создаем сивольный массив
for (int i = 0; i < str.Length()-; ++i) {
str1[i] = str[str.Length()-i];
}
 
reg2->Lines->Text = str1;
единственное как сделать так чтобы переход на новую строку при перевороте не становился пустым?
я постесняюсь спросить, а зачем вам вообще промежуточный char * ? ))) сразу и пихайте в reg2->Lines->Text

что-то типа такого:
C++
1
2
3
   reg2->Lines->Text="";
   for(int i = 0; i<=str.Length(); ++i)
               reg2->Lines->Text += srt[str.Length()-i];
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
06.02.2013, 02:17  [ТС] #17
Цитата Сообщение от abit Посмотреть сообщение
я постесняюсь спросить, а зачем вам вообще промежуточный char * ? ))) сразу и пихайте в reg2->Lines->Text

что-то типа такого:
C++
1
2
3
   reg2->Lines->Text="";
   for(int i = 0; i<=str.Length(); ++i)
               reg2->Lines->Text += srt[str.Length()-i];
Мне нужно перевернуть текст файла и отобразить его в reg.
Хотя я может и мудрю...
0
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
06.02.2013, 02:26 #18
Цитата Сообщение от Jackbeat Посмотреть сообщение
Мне нужно перевернуть текст файла и отобразить его в reg.
Хотя я может и мудрю...
char * это уже реликвия из C, пользоваться им стоит только если прекрасно владеть указателями, десткруторами, следить за памятью и в критических ситуациях... так просто лучше не использовать эту роскошь, ибо дурной стиль для C++
олдфаги могут меня ругать за такие слова, но я бы не рекомендовал всю эту возню...
для вашей задачи вполне хватит контейнера string
1
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
06.02.2013, 02:30  [ТС] #19
Цитата Сообщение от abit Посмотреть сообщение
char * это уже реликвия из C, пользоваться им стоит только если прекрасно владеть указателями, десткруторами, следить за памятью и в критических ситуациях... так просто лучше не использовать эту роскошь, ибо дурной стиль для C++
олдфаги могут меня ругать за такие слова, но я бы не рекомендовал всю эту возню...
для вашей задачи вполне хватит контейнера string
Странно, но ваш последний метод работает без результата (нет отображения в reg), но все равно спасибо.
Подумаю что можно сделать.
0
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
06.02.2013, 02:34 #20
Цитата Сообщение от Jackbeat Посмотреть сообщение
Странно, но ваш последний метод работает без результата (нет отображения в reg), но все равно спасибо.
Подумаю что можно сделать.
дайте пожалуйста посмотреть на ваш код (отображение в reg2 кстати)

вот набросал в g++ проверить:

C++
1
2
3
4
5
6
string s,a;
   s = "1123";
   a = "";
   for(int i = 0; i<=s.size(); ++i)
       a += s[s.size()-i];
   cout << a;
выход : 3211

убедитесь сами - http://liveworkspace.org/code/4ewjPb$0
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
06.02.2013, 02:43  [ТС] #21
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    AnsiString str;
 
    int b;
 
    reg2->Lines->Clear();
    str = "sdfgo;jhibs iwetoowoifh kwjc fuoiue \ns wegwgwe w w ewet tu"; // к примеру
    b = str.Length();
 
    cng1->Caption = IntToStr(b)+ "\;" + IntToStr(reg1->Lines->Count);
 
 
    
    for (int i = 0; i <= b; ++i) {
        reg2->Lines->Text += str[str.Length() - i];
    }
Ошибка в результате работы программы: Range check error.
0
abit
271 / 270 / 35
Регистрация: 03.02.2013
Сообщений: 760
06.02.2013, 03:17 #22
Цитата Сообщение от Jackbeat Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    AnsiString str;
 
    int b;
 
    reg2->Lines->Clear();
    str = "sdfgo;jhibs iwetoowoifh kwjc fuoiue \ns wegwgwe w w ewet tu"; // к примеру
    b = str.Length();
 
    cng1->Caption = IntToStr(b)+ "\;" + IntToStr(reg1->Lines->Count);
 
 
    
    for (int i = 0; i <= b; ++i) {
        reg2->Lines->Text += str[str.Length() - i];
    }
Ошибка в результате работы программы: Range check error.
жесть, я теряюсь в догадках... мыслей несколько, и из-за не понимания чего там в VS... судя по всему у меня есть две идеи как это решить - зависит от проблемы )
хотя есть и третья... попробуйте задать индексацию reg2->Lines->Text[i] но это глупо...
основная идея этот System::Lines::Text видимо выполнен может как указатель без операций +/[], и раз присваивание работало - попробуйте
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
        AnsiString str,str1;
 
    int b;
 
    reg2->Lines->Clear();
    str = "sdfgo;jhibs iwetoowoifh kwjc fuoiue \ns wegwgwe w w ewet tu"; // к примеру
    b = str.Length();
 
    cng1->Caption = IntToStr(b)+ "\;" + IntToStr(reg1->Lines->Count);
 
 
    
    for (int i = 0; i <= b; ++i) {
        str1 += str[str.Length() - i];}
        reg2->Lines->Text = str1;
вот работа вашего кода на g++ - http://liveworkspace.org/code/3Hzd0h$1
вполне исполняется
0
06.02.2013, 03:17
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2013, 03:17
Привет! Вот еще темы с ответами:

Array не выводит char - C++
Собственно не задание ни чего, хочу вывести небольшую программу с &quot;арами&quot;, а именно - хочу что бы при введении ID 1 или 0 , выдавало Имя...

Сравнение char array - C++
Вообщем Случайно допустил такую конструкцию if (a &gt; b) { .... } запамятовав, что a и b не int'ы, а char'ы, но тем не...

Ошибка char-array initialized from wide string - C++
Доброго времени суток! Вот программы, которые были выложены, одна на сайте среди уроков-примеров, другая же выложена на форуме. В обоих...

Как правильно завершить char array (Null terminated) - C++
В гугле вижу самые разные примеры. char* chs = new char; ... chs = '\0'; // Разве 128 существует ? ... delete chs; пробовал...


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

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

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