Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив символов 
:(
    Опции темы
Reptor
Дата 13.6.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Как задать массив строк. Пробовал так 


Код

 char mas[13][30];


mas[0]="строка1";
mas[1]="строка2";
.........................
mas[12]="строка12"


ничего не выходит


 
PM MAIL ICQ   Вверх
Tata
Дата 13.6.2006, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.6.2006
Где: Воронеж

Репутация: нет
Всего: нет



По-моему, надо присваивать значения строкам либо сразу при объявлении переменных, либо потом посимвольно. А так, как тут написано, он должен писать что-то вроде "Lvalue expected". 
PM MAIL   Вверх
Dray
Дата 13.6.2006, 17:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Материалист
**


Профиль
Группа: Участник
Сообщений: 652
Регистрация: 7.10.2003
Где: г. Всеволожск

Репутация: нет
Всего: 6



лучше зависти массив string'ов.
Код

std::string strarr[13];
 


--------------------
忍者

user posted image
PM MAIL   Вверх
Reptor
Дата 13.6.2006, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Цитата

По-моему, надо присваивать значения строкам либо сразу при объявлении переменных, либо потом посимвольно. А так, как тут написано, он должен писать что-то вроде "Lvalue expected".  

Ну да он так и пишет


Dray, а можна поподробнее что то не совсем понятно. Желательно рабочий код (ну массив з данными). 
PM MAIL ICQ   Вверх
Reptor
Дата 13.6.2006, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



ну что никто не поможет очень надо я уже всё перепробывал  smile  
PM MAIL ICQ   Вверх
SenkraD
Дата 13.6.2006, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 933
Регистрация: 3.2.2006
Где: Украина::Киев

Репутация: 9
Всего: 23



А тип AnsiString не подходит? И удобнее и проще 


--------------------
 Имеющий язык - да не убоится спросить! 
user posted image
PM MAIL ICQ   Вверх
Voldemar2004
Дата 13.6.2006, 21:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 1
Всего: 23



Reptor, в чистом - не Builder'e С++ так:
Код
#include <iostream.h>
#include <string>
#include <conio>

int main(void)
{
std::string a[5];

a[0] = "1";
a[1] = "2";
a[2] = "3";
a[3] = "4";
a[4] = "5";


for(int i=0; i<5; i++) cout << a[i] << '\n';

getch();

return 0;
}
В Buildere то же самое только тип - AnsiString:
Цитата
AnsiString is the C++Builder analog for the Delphi long string type.
А можно через "указатель на указатель на область памяти": вот не лучший способ:
Код
#include <iostream>
#include <conio>

int main(void)
{

int i=2;

int **m = (int **) new int [i][2];

m[0][0] = 1;
m[0][1] = 2;

cout << m[0][0] << '\t' << m[0][1];


getch();
return 0;
}
 А вот более безопасный и лучший способ:
Код
#include <iostream>
#include <conio>

int main(void)
{

int stroka, stolbetz;

cin >> stroka >> stolbetz;

int **a = new int *[stroka];

for(int i=0; i < stroka; i++) a[i] = new int[stolbetz];


/*

...
...
...

*/

delete[] a;

getch();
return 0;
}


Добавлено @ 21:18 
Цитата(Reptor @  13.6.2006,  17:43 Найти цитируемый пост)
Как задать массив строк.

Цитата(Reptor @  13.6.2006,  20:20 Найти цитируемый пост)
ну что никто не поможет
Ну а конкретно в С++ Builder'e: для динамического массива
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{

int n=5;

AnsiString *Stroka = new AnsiString[n];

Stroka[0] = "Строка1";
Stroka[1] = "Строка2";
Stroka[2] = "Строка3";
Stroka[3] = "Строка4";
Stroka[4] = "Строка5";

for(int i=0; i<n; i++) ShowMessage(Stroka[i]);

delete[] Stroka;

}
Для простого массива (не динамического):
Код
void __fastcall TForm1::Button1Click(TObject *Sender)
{

const n=5;

AnsiString Stroka[n];

Stroka[0] = "Строка1";
Stroka[1] = "Строка2";
Stroka[2] = "Строка3";
Stroka[3] = "Строка4";
Stroka[4] = "Строка5";

for(int i=0; i<n; i++) ShowMessage(Stroka[i]);

}

 


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Tata
Дата 13.6.2006, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 8.6.2006
Где: Воронеж

Репутация: нет
Всего: нет



Ну если надо просто при создании инициализировать какими-то значениями, то можно просто попробовать так:
Код

char mas[13][30] ={"строка1","строка2",...,"строка12"};

 smile   

Это сообщение отредактировал(а) Tata - 13.6.2006, 21:45
PM MAIL   Вверх
ksili
Дата 14.6.2006, 07:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2069
Регистрация: 3.11.2005
Где: Красноярск

Репутация: 1
Всего: 17



В самом первом посте не хватает точки с запятой в самом конце 


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
likehood
Дата 14.6.2006, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


666
**


Профиль
Группа: Участник
Сообщений: 536
Регистрация: 21.12.2005

Репутация: 1
Всего: 24



Tata, лучше так:
Код

const char *str[] = {
  "string1",
  "string2",
  "string3"
};
 
PM MAIL   Вверх
Reptor
Дата 14.6.2006, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1213
Регистрация: 29.12.2004

Репутация: нет
Всего: 0



Всем огромное спасибо теперь с выбором метода точно проблем не будет  smile  
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0812 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.