Другие языки программирования и технологии

Инициализация массива символьного типа. С++

Подскажите, как инициализировать элементы массива символьного типа по очереди типа структуры, имеющей два поля символьного типа. { struct data { char name[20]; char sur[20]; }; int i; data v, a[10]; a[1]={"Simon", "Bell"}; a[2]={ "Vidal", "Sasoon" }; a[3]={"Thom","Filicia"}; a[4]={"Charls","Mackintosh"}; a[5]={"Philipp","Stark"}; a[6]={"Thomas","Maldonado"}; a[7]={"Gertrude","Jekyll"}; a[8]={"Neville","Brody"}; a[9]={"Sonoda","Kenichi"}; a[10]={"Irina","Sokhina"}; Этот вариант не работает.
data a[10] =
{

{"Simon", "Bell"},
{"Vidal", "Sasoon" },
{"Thom","Filicia"},
{"Charls","Mackintosh"},
{"Philipp","Stark"},
{"Thomas","Maldonado"} ,
{"Gertrude","Jekyll"},
{"Neville","Brody"},
{"Sonoda","Kenichi"},
{"Irina","Sokhina"}

}

+ индексация идет с нуля!
КЕ
Кирилл Евстифеев
25 952
Лучший ответ
Массив сивольнлго типа инициализируется так:

char name[] = " Ivan";

Вам нужно в структуре два массива типа string, один - для имён, другой - для фамилий:

#include <string>
....

string firstname[10] = {"Ivan", "Hanna", .."Irina"};
string secondname[10] = {"Petrov", "Ivanova", .."Borisova"};

Если один массив, и он одномерный, то:

string name[10] = {"Ivan Petrov", "Hanna Ivanova", .."Irina Borisova"};

Либо объявлять двумерный массив:

string person[10][2] = {{"Ivan", "Petrov"}, {"Hanna" , "Ivanova"}, ..{"Irina" , "Borisova"}};

for (int n = 0; n < 10; n++)
{
cout << endl;

for (int m = 0; m < 2; m++)
cout << person[n][m] << ' ';
}

А есть ещё вариант, когда используются перечисления.. . Но это уже уже другая история)))
strcpy_s(a[ 0 ].name,"Simon");
strcpy_s(a[ 0 ].sur ,"Bell");

...

strcpy_s(a[ 9 ].name,"Irina");
strcpy_s(a[ 9 ].sur ,"Sokhina");
char name [ 20 ] [ 2 ];
a[ 1 ] [ 1 ] = "simon"; a [ 1 ] [ 2 ] = "bell";
a[ 2 ] [ 1 ] = "Vidal"; a [ 2 ] [ 2 ] = "sasoon";
a[ 3 ] [ 1 ] = "thom"; a [ 3 ] [ 2 ] = "filicia";
и т. д.
вы объявляете одинарный массив, а присваиваете по два значения каждому элементу.. . попробуйте вышенаписанный пример.. . правда не думаю что заработает, я со структурами не работал...
нужно при обьявлении массива записывать туда данные. а вы пытаетесь таким образом записать туда данные во время выполнения программы. надо так:
data a[10] = {{}, {"Simon", "Bell"}, { "Vidal", "Sasoon"}, {"Thom","Filicia"},{"Charls","Mackintosh"}, {"Philipp","Stark"}, {"Thomas","Maldonado"}, {"Gertrude","Jekyll"}, {"Neville","Brody"}, {"Sonoda","Kenichi"}, {"Irina","Sokhina"}};