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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.86
simkara26
2 / 2 / 0
Регистрация: 26.05.2013
Сообщений: 37
#1

Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) - C++

31.05.2013, 17:39. Просмотров 2962. Ответов 11
Метки нет (Все метки)

Подскажите, как объявить пустой глобальный строковый массив из 16 элементов?

в качестве элементов будут указаны пути к графическим файлам на компьютере
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2013, 17:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Строковый массив (объявить пустой глобальный строковый массив из 16 элементов) (C++):

Как описать пустой строковый массив - C++
Скажите пожалуйста, как описать пустой строковый массив, если пока неизвестно сколько букв будет в слове, которое запишется в данный массив?

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

Строковый массив и цикл for - C++
Всем привет. Сколько раз не пытался, не получается сделать так, чтобы после проверки условия цикл пошел повторно и при этом счетчик...

Двумерный строковый массив - C++
Доброе время суток! Подскажите, пожалуйста, как правильно создать и заполнить двумерный строковый массив! Пробовал делать так: ...

Динамический строковый массив - C++
Здравствуйте. Появилась проблема. Пытаюсь реализовать программу, которая считывает строку в динамический массив. Заранее количество...

Строковый динамический массив - C++
Как считать две строки в динамический строковый массив, чтобы потом можно было работать с этими строками и копировать из них нужные символы...

11
ViktorKozlov
133 / 125 / 2
Регистрация: 13.12.2012
Сообщений: 293
31.05.2013, 17:54 #2
C++
1
2
#include <string>
string mas[16];
или
C++
1
char mas[16][X];
X - кол-во символов в строке
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 18:01 #3
C++
1
std::vector<std::string> v;
C++
1
char ***str = 0;
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.05.2013, 18:33 #4
Цитата Сообщение от BumerangSP Посмотреть сообщение
char ***str = 0;
это не является массивом, тем более на 16 элементов
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 18:37 #5
Tulosba, ну, по крайней мере хранить что-то можно, правильно выделив память)
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
31.05.2013, 18:53 #6
BumerangSP, при таком раскладе и в одном единственном целом можно массив вещественных хранить:
C++
1
int p = reinterpret_cast<int>(new double[ 100500 ]);
0
BumerangSP
4287 / 1409 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
31.05.2013, 19:25 #7
Tulosba, все, что я хотел этим показать
C++
1
2
3
str = new char**[5];
for (int i=0; i<5; ++i)
   str[i] = new char*("dsfsdf");
1
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
01.06.2013, 11:41 #8
Цитата Сообщение от BumerangSP Посмотреть сообщение
C++
1
str[i] = new char*("dsfsdf");
Но зачем? Выделять указатель (потом надо же удалять) и инициализировать его константной строкой, если можно просто:
C++
1
2
3
char** str = new char*[5];
for (int i=0; i<5; ++i)
   str[i] = "dsfsdf";
Хотя сама идея такой инициализации кажется мне сомнительной.
0
jekmut
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 84
21.10.2014, 21:52 #9
Здравствуйте! Как инициализировать строковый массив в классе, например из трех элементов? Я запутался... Помогите пожалуйста!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <conio.h>
using namespace std;
 
class Students
{
  string student[];
  int averageRating[];
public:
  Student(string student[], int averageRating[]);
  void SortList();
  void Search();
  void ShowList();
};
 
Students :: Students(string student[], int averageRating[])
{
  this -> student[] = student[];
  this -> averageRating[] = averageRating[];
}
 
int main()
{
  
  getch();
  return 0;
}
0
notemac
27 / 27 / 4
Регистрация: 13.09.2014
Сообщений: 137
21.10.2014, 21:55 #10
jekmut, поэлементно копировать из одного массива в другой.
0
jekmut
0 / 0 / 0
Регистрация: 30.12.2012
Сообщений: 84
21.10.2014, 21:59 #11
Я хотел инициализировать его по умолчанию, чтобы не вводить с клавиатуры, например так:
C++
1
student[] = {"Иванов", "Петров", "Сидоров"};
0
Tulosba
:)
Эксперт С++
4397 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
21.10.2014, 22:45 #12
jekmut, во-первых, если массив является членом класса, его размерность должна быть указана явно.
Нельзя писать
C++
1
string student[];
Нужно указать размер, например:
C++
1
string student[42];
Во-вторых, копировать массивы просто используя присваивание тоже нельзя.
C++
1
this -> student[] = student[]; // ошибка
Нужно, либо использовать поэлементное копирование через цикл.
Либо использовать memcpy(), если тип является POD.

Если хочется сделать инициализацию поля в классе, то для этого нужно чтобы компилятор поддерживал стандарт C++11 и написать можно примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <string>
 
struct S
{
    std::string i[2] = { "first", "second" };
};
     
int main() {
    S s;
    std::cout << s.i[0] << std::endl; // выводит "first"
    return 0;
}
http://coliru.stacked-crooked.com/a/4eec3fcef5b24696
0
21.10.2014, 22:45
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2014, 22:45
Привет! Вот еще темы с ответами:

Строковый Массив с циклом - C++
Помогите, ошибка в создании строкового Массива. Собственно, данный код связан с as3, но здесь ошибка в плане C++.. Необходимо, чтоб...

Строковый массив в int массив - C++
Нужно ввести длинное число. Хочу сделать через char-массив, а потом присвоить значения индексов char-массива для int-массива, т.к. с вторым...

Строковый массив произвольного размера - C++
Можно ли каким-то образом образом написать программу, в которой будет вводиться строковый массив произвольной длины? Если бы это был...

Строковый массив, прайс лист - C++
Всем здравствуйте, задали в университете задание по c++, нужно с файла считать название продукта и его цену, потом нужно выбрать, какую...


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

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

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