Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.07.2009, 12:54   #11
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Сообщение от Dimarik Посмотреть сообщение
подскажи, пожалуйста, почему iй символ у char* это (i+1)-ый символ у AnsiString. Это потому что у char* в конце ввода добавляется '\0', а у ансистринга его нет??
Это потому что в char* индексация идет с нуля, а в AnsiString с еденицы. Т.к. в AnsiString 0 символ это вся строка (кажется. Точно не помню).
Цитата:
и как написать то, что я хочу, чтобы менялись символы местами без использования указателей. через ансистринг?
Не знаю что Вы там меняете, но этот код работает также
Код:
Memo2->Text = Memo1->Text[Memo1->Text.Length()];
psycho-coder вне форума Ответить с цитированием
Старый 12.07.2009, 15:49   #12
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

подскажите, плиз.нужно перевести iый элемент строки ансистринг в его код, затем это необходимо преобразовать к типу стринг (а если возможно ансистринг, что ещё лучше, и вывести на экран)
Dimarik вне форума Ответить с цитированием
Старый 12.07.2009, 15:57   #13
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

В его код - это номер символа? Если да то
Код:
  AnsiString a;
  a = "hello world!";
  int b = a[2];
  Label1->Caption = IntToStr((int) a[2]);
  Label2->Caption = (char) b;
psycho-coder вне форума Ответить с цитированием
Старый 12.07.2009, 16:01   #14
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

в string как и в ansistring а[1]- yjvth 1го элемента, так?
а можно перевести именно в ансистринг?

AnsiString a;
int* massiv=new int[n]
int n,i;
n=7;i=n;
int* mas=new int[n];
massiv[i]=int(a[i]);//ОШИБКА!!!! при выполнении

Последний раз редактировалось Sazary; 13.07.2009 в 14:29.
Dimarik вне форума Ответить с цитированием
Старый 12.07.2009, 16:07   #15
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

massiv[i]=(int)a[i];
Это С, а не Delphi
psycho-coder вне форума Ответить с цитированием
Старый 12.07.2009, 19:27   #16
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

я Delphi не знаю)))
просто помню такое преобразование:
char b;
int a;
a=int(b) или a=b(int)
Dimarik вне форума Ответить с цитированием
Старый 12.07.2009, 19:31   #17
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

у меня такой вопрос. Прописываю я цикл:
for(int i=0; i<10;i++)
{
a[i]=a[i-1];
}
для того чтобы в дальнейшей работе программы нужно писать оператор return???
например, return a[i]????
просто, в отличие от консоли, автор книги, по которой я изучаю Билдер, очень часто в циклах и условия использует оператор return? например, в этом случае:
if (Key==VK_RETURN)//клавиша <ENTER>
{
Edit2->SetFocus();//переместить курсор в поле Edit2
return;
}
Dimarik вне форума Ответить с цитированием
Старый 12.07.2009, 19:32   #18
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Хммм... так преобразовываются типы в Object Pascal(Delphi): a=int(b);
а так в C/C++: a=(int)b;

Последний раз редактировалось profi; 12.07.2009 в 19:35.
profi вне форума Ответить с цитированием
Старый 12.07.2009, 19:35   #19
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Видимо этот код находился в теле какой-то функции которая ничего не возвращала и автор просто хотел выйти с этой функции.

Код:
if (Key==VK_RETURN)
{
Edit2->SetFocus();
return;
}
Код:
for(int i=0; i<10;i++)
{
a[i]=a[i-1];
}
Тут не нужен return.

Можно сократить этот код и написать так

Код:
for(int i=0; i<10;i++)
a[i]=a[i-1];
Скобки лишние.

Последний раз редактировалось profi; 12.07.2009 в 19:37.
profi вне форума Ответить с цитированием
Старый 12.07.2009, 20:58   #20
psycho-coder
Участник клуба
 
Аватар для psycho-coder
 
Регистрация: 06.04.2009
Сообщений: 1,524
По умолчанию

Цитата:
Можно сократить этот код и написать так

Код:
for(int i=0; i<10;i++)
a[i]=a[i-1];
Скобки лишние.
Тогда можно вообще вот так
Код:
for(int i=0; i<10;i++) a[i]=a[i-1];
psycho-coder вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с Memo RockForr Компоненты Delphi 2 28.04.2009 19:56
Работа с Memo Волк Общие вопросы Delphi 3 13.02.2009 17:47
Компонент Memo и работа с *.ini-файлами nerZEROn Общие вопросы Delphi 11 08.01.2009 16:31
Примерный алгоритм программы и работа с Memo Freestyler Помощь студентам 0 10.12.2008 22:46
работа со строками в Memo ddtpoison Компоненты Delphi 3 01.06.2008 18:33