Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/9: Рейтинг темы: голосов - 9, средняя оценка - 5.00
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
1

Инициализация массивов и их передача в функции для обработки

23.02.2015, 10:26. Показов 1874. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Видел темы работы с массивами чисел. Там вопросов вроде нет.
Тут хотел бы немного уточнений на счет строк.
1. Известна длинна массива, в количестве строк(слов - какая-то последовательность символов). Например их 10.
Можно ли задать, и сформировать его так:
C++
1
2
3
4
5
String Array[10];
      for (int i=0; i < 10; i++)
      {
        Array[i]="Строка "+i;
      }
2. Как передать эту канитель на какую-либо обработку в иную функцию? Можно ли так:
C++
1
2
3
4
5
6
7
8
SortStrings (&Array[10], long); //long - это количество элементов
void SortStrings (*Array[], int n)  //тут не понятно на самом деле сколько элементов
{
  for(int i=0; int<n; i++)
  { 
     String CurrentString=//Как получить i-тый элемент??
  }
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.02.2015, 10:26
Ответы с готовыми решениями:

Строки - функции обработки строк как одномерных массивов
для B ) реализовать без использования библиотеки &lt;string.h&gt; (использовать свои функции обработки...

Функции для обработки массивов
Разработать программу на С++ используя функции форматированного ввода-вывода языка Си . Исходные...

Функции для обработки массивов
Добрый день! Помогите пожалуйста с программой. Есть две функции. В первой функции считывается...

Функции для обработки одномерных массивов
С. Прата, задача 7.6, Посмотрите, пожалуйста, насколько дубово (для текущего уровня) я решил...

8
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
23.02.2015, 10:55 2
Лучший ответ Сообщение было отмечено newline как решение

Решение

Если в Билдере, то почему бы не использовать TStringList ?
Там и инструментарий есть для работы неплохой... И вставка, и сортировка, и быстрый поиск (если сортированный)
1
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
23.02.2015, 11:08  [ТС] 3
Потому что таких массивов несколько у меня. Всякий раз его в StringList копировать?.. Хм. А может и так...
можно попросить накидать сюда методов этого компонента? Собственно я все это веду к решению того же вопроса в соседней ветке.
Помогите советами. А вот за этот совет спасибо, однозначно
0
74 / 54 / 17
Регистрация: 10.07.2014
Сообщений: 329
23.02.2015, 11:19 4
Да просто в справке смотришь что он умеет...
Если самое важное то такое:
C++
1
2
3
4
TStringList *sl = new TSringList();
sl->Sorted = true;
sl->Duplicates = System::Types::dupIgnore;
sl->Add("SomeString");
Вот уже будет массив отсортирован.
C++
1
sl->Assign(sl1);// - функция копирования с одного листа в другой
Ну и много других - смотря что делать надо. Add Delete Insert IndexOf и прочее
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
23.02.2015, 14:36  [ТС] 5
А этот компонент умеет отсортировать более 10 строк? В моем случае около 35 строк. Первые 10 сортирует - дальше лесом.

Добавлено через 17 минут
А теперь только 8 первых отсортировал...

Добавлено через 1 час 1 минуту
В педальную отсортировал...

Добавлено через 1 час 5 минут
Уважаемые, Взял и сделал вот примерно так.
C++
1
2
CheWo object;
  object.SeePosWo();
В классе, есть метод:
C++
1
2
3
4
5
public:
    void SeePoWo()
        char *LongW[]; //Объявлен массив Чаров
char a=*LongW[j];  //что-то там с ним делается в циклах
delete[] LongW; //И в конце он умирает
Программа запускается, но выкидывает Access Violation...
Что так??

Добавлено через 13 минут
Да, и сам массив формируется так:
C++
1
strcpy(*LongW,AnsiString(Longd).c_str());
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.02.2015, 14:52 6
Объявлен не массив чаров, а массив указателей на чары.
0
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
23.02.2015, 21:38  [ТС] 7
Поправьте, хотелось бы использовать указатели
0
4043 / 2332 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
23.02.2015, 22:36 8
Хочется использовать массив строк? Запросто.
Объявил массив указателей на чары - теперь под каждый элемент данного массива создай строку.
C++
1
2
for(/*...*/)
    LongW[i] = new char[n]; // где n - произвольная длина строк
И потом не забудь все это дело освободить так же в цикле.
1
98 / 10 / 0
Регистрация: 21.02.2011
Сообщений: 415
24.02.2015, 10:01  [ТС] 9
Спасибо за совет.
0
24.02.2015, 10:01
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.02.2015, 10:01
Помогаю со студенческими работами здесь

Функции для обработки одномерных массивов
Дано три одномерных массива с произвольным количеством элементов. Для каждого из них найти сумму...

Строковый массив (описание, инициализация, передача в функции)
Здравствуйте! Простите за настолько банальный вопрос, но никак не могу разобраться со строковыми...

Процедуры и функции обработки массивов
Здравствуйте, помогите ,пожалуйста, с написанием программы, а точнее, подскажите куда вставить...

Создать функцию для обработки символьных строк. За образец брать библиотечные функции обработки строк языка С, но не применять их в своей функции
Доброго времени суток! Крайне необходима помощь экспертов в С++! Кто может - не оставьте меня в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru