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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 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. Просмотров 1927. Ответов 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
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 731
05.02.2013, 02:15 #2
Цитата Сообщение от Jackbeat Посмотреть сообщение
Подскажите пожалуйста, каким образом можно посимвольно записать AnsiString в Array char.
Можно так же вариант и из файла.
Если не трудно, то можно ссылки на аналогичную тему.
Пролистал гугл, подходящего не нашел, к сожалению...

Необходимость заключается в том, чтобы перевернуть содержимое текста из компонента memo, либо файла.
Буду благодарен за помощь.
для обоих типов доступны операторы произвольного доступа, в чём проблема?
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
05.02.2013, 02:23  [ТС] #3
Цитата Сообщение от abit Посмотреть сообщение
для обоих типов доступны операторы произвольного доступа, в чём проблема?
Можно конкретнее?
Я пробовал и c_str() и t_str(), но похоже не по той тропе пошел...
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
05.02.2013, 02:32 #4
Jackbeat,
for (от начала до конца массива)
array[i] = lastArray[i];
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
05.02.2013, 02:54  [ТС] #5
Цитата Сообщение от MrGluck Посмотреть сообщение
Jackbeat,
for (от начала до конца массива)
array[i] = lastArray[i];

то типа

C++
1
2
3
4
5
6
dl = memo1->Lines->Text.Length(){
for (int i = 1; i <= dl; i++);  
str1[i] = ?  
 
//...
}
на месте вопроса - не понял что именно должно быть.
str1[i] - массив типа char.
0
abit
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 731
05.02.2013, 02:58 #6
это всё зависит от контекста...
вот набросал вам пример для класса string, который в обратном порядке фигачит в char *

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <iostream>
 
using namespace std;
 
int main()
{
 
 string a("0123456789abcdef");
 char * b = new char [a.size()];
 
 for (string::size_type i=0; i!=a.size(); ++i) 
  {b[i]=a[a.size()-i-1];}
 
 cout << b;
 
 delete[] b;
}
если нужно более точно - давайте контекст пример программы что и куда вам надо перевернуть
1
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
05.02.2013, 03:01 #7
Цитата Сообщение от abit Посмотреть сообщение
char * b = new char [a.size()];
C++
1
char * b = new char [a.size() + 1];
и b[a.size()] = '\0'; в конце
1
abit
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 731
05.02.2013, 03:02 #8
Цитата Сообщение от MrGluck Посмотреть сообщение
C++
1
char * b = new char [a.size() + 1];
и b[a.size()] = '\0'; в конце
да, извиняюсь, забыл... давно с char * не имел дел)
0
MrGluck
Модератор
Эксперт CЭксперт С++
7278 / 4439 / 650
Регистрация: 29.11.2010
Сообщений: 12,017
05.02.2013, 03:03 #9
Цитата Сообщение от Jackbeat Посмотреть сообщение
dl = memo1->Lines->Text.Length(){
for (int i = 1; i <= dl; i++); *
str1[i] = ? *
//...
}
Во первых, индексация в С++ начинается с 0 и цикл должен быть таким:
for (int i = 1; i <= dl; i++)
Во-вторых, ; в конце объявления цикла обозначает пустое тело цикла, нам этого не надо.
1
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
05.02.2013, 13:11  [ТС] #10
Цитата Сообщение от MrGluck Посмотреть сообщение
Во первых, индексация в С++ начинается с 0 и цикл должен быть таким:
for (int i = 1; i <= dl; i++)
Во-вторых, ; в конце объявления цикла обозначает пустое тело цикла, нам этого не надо.
Это да с нуля нужно начинать, дурная привычка...

Добавлено через 43 секунды
Цитата Сообщение от abit Посмотреть сообщение
да, извиняюсь, забыл... давно с char * не имел дел)
Спасибо!

Добавлено через 10 часов 2 минуты
Цитата Сообщение от abit Посмотреть сообщение
да, извиняюсь, забыл... давно с char * не имел дел)
Правильно ли я понял, что в визуалке я должен писать не:
C++
1
a.size()
а заменить таким образом:
C++
1
a.length()
?
0
abit
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 731
05.02.2013, 13:16 #11
согласно стандарту
Both string::size and string::length are synonyms and return the same value
так что видимо да

вероятнее всего типа такого:
String a = "Hello World";
a.Length();

обратите внимание, что тип String и метод написаны с большой буквы, вероятно это имеет значение в VS, я не знаю, не сталкивался с VS... в стандарте такое не описано
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
05.02.2013, 13:42  [ТС] #12
Цитата Сообщение от abit Посмотреть сообщение
согласно стандарту


так что видимо да

вероятнее всего типа такого:
String a = "Hello World";
a.Length();

обратите внимание, что тип String и метод написаны с большой буквы, вероятно это имеет значение в VS, я не знаю, не сталкивался с VS... в стандарте такое не описано
Возможно, а вообще это системная тип System::String возможно её решили записать именно таким образом.

Но единственное нет замены String::size_type либо я не досмотрел.

Посмотрю справку. Если что отпишусь.
0
abit
264 / 263 / 33
Регистрация: 03.02.2013
Сообщений: 731
05.02.2013, 13:53 #13
Цитата Сообщение от Jackbeat Посмотреть сообщение
Возможно, а вообще это системная тип System::String возможно её решили записать именно таким образом.

Но единственное нет замены String::size_type либо я не досмотрел.

Посмотрю справку. Если что отпишусь.
а судя по всему в микрофте плюнули на все стандарты... я залез на MSDN и увидел картину маслом для Length():
C++
1
2
3
4
public:
property int Length {
    int get ();
}
даже не unsigned, а решительное int
и никакого аналога size_type для String там нет, его смысл - описать наибольшую структуру string, доступную в этой среде исполнения...
так что смело пользуйтесь int вместо size_type, но по хорошему это не правильно
0
Jackbeat
1 / 1 / 0
Регистрация: 20.03.2012
Сообщений: 26
05.02.2013, 15:50  [ТС] #14
В общем получилось как-то так, но вывод очень кривой.
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;
единственное как сделать так чтобы переход на новую строку при перевороте не становился пустым?
0
Avazart
Эксперт С++
7213 / 5385 / 286
Регистрация: 10.12.2010
Сообщений: 23,796
Записей в блоге: 17
05.02.2013, 17:21 #15
Конвертация String в BYTE

Добавлено через 2 минуты
Насчет c_str() в String ( VCL) Нужен код функции c_str()
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.02.2013, 17:21
Привет! Вот еще темы с ответами:

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; пробовал...


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

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
05.02.2013, 17:21
Ответ Создать тему
Опции темы

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