II
Irina Irina

Помогите плиз с присвоением строк с++

Вот структура
struct kolledg // Ñîçäàíèå ñòðóêòóðû
{
char fio[dlina_vvoda];
char stat_pol[dlina_vvoda];
char spezialnost = ' ';
float balu_ukrainska;
float balu_matematuka;
float sr_atestat;
int number_specialty;
};
в другой функции полю специальность нужно присвоить массив символ! Вот он :

void Assigning_specialty( int number )
{
char programming = 'Ïðîãðàììèðîâàíèå ';
char comp_ob = 'Êîìïüþòåðíîå Îáñëóæèâàíèå';
char bugalter = 'Áóõãàëòåðñêèé Ó÷åò ';
char electric = 'Ìåõàíèêà è Ýëåêòðèêà ';
char svarka = 'Ñâàðêà ';
if ( number == one ) vstup[number_menu].spezialnost = programming;
if ( number == two ) vstup[number_menu].spezialnost = comp_ob;
if ( number == one+two ) vstup[number_menu].spezialnost = bugalter;
if ( number == two+two ) vstup[number_menu].spezialnost = electric;
if ( number == 5 ) vstup[number_menu].spezialnost = svarka;
}
Выдает ошибку каким способом это можно сделать?

Александр Ефремов
Александр Ефремов

Массивы напрямую в C++ не присваиваются. Да и вообще это строки char[] - доставшиеся в наследство от С, их присваивание делается наследованной от С функцией strcpy. А в C++ рекомендуется пользоваться гораздо более мощными строками класса string, там и присваивание напрямую есть.. .
А у тебя и вовсе присваиваются не строки, а многобайтные символы...

### Юрий ### .

Обрати внимание, какие кавычки используются для строковых литералов!

1) Определить МАХ, необходимым и достаточным для хранения названия специальности любой длины

struct kolledg {
...
char spezialnost[MAX];
...
};
...
... strcpy(vstup[number_menu].spezialnost, "Программирование");

2) #include , использовать std::string для строк

struct kolledg {
...
string spezialnost;
...
};
...
... vstup[number_menu].spezialnost = "Программирование";

3) Придумывать всякие извращения, чтобы не было предупреждений или ошибок компиляции

struct kolledg {
...
char *spezialnost;
...
};
...
... vstup[number_menu].spezialnost = const_cast("Программирование");

4) Использовать динамическую память.
Даже примера не буду приводить. Запутаешься с указателями, выделением/освобождением, лучше всего используй std::string.

АЛ
Александр Лозинский

Просто char без [] это один символ, а ты туда слова пытаешься всунуть)
Программа не вся, структура должна быть такая, тогда у меня ругается толко ан неопределенные переменные:
struct kolledg
{
char fio[20];
char stat_pol[20];
char spezialnost;
float balu_ukrainska;
float balu_matematuka;
float sr_atestat;
int number_specialty;
};

void Assigning_specialty( int number )
{
char programming[] = "Proger";
char comp_ob[] = "Sysadmin";
char bugalter[] = "Bux";
char electric[] = "Electro";
char svarka[] = "Svarka";
if ( number == one ) vstup[number_menu].spezialnost = programming;
if ( number == two ) vstup[number_menu].spezialnost = comp_ob;
if ( number == one+two ) vstup[number_menu].spezialnost = bugalter;
if ( number == two+two ) vstup[number_menu].spezialnost = electric;
if ( number == 5 ) vstup[number_menu].spezialnost = svarka;
}

Похожие вопросы
Нужно удалить слово из строки по номеру (C++).Помогите плиз
Помогите с паскалем (строки)
помогите с C# работа со строками??
Помогите удалить символы в строке!
помогите с выводом строки C++
Помогите плиз ктото с задачкой на ПАСКАЛЬ!! ! В строке определить количество цифр в строке. И удалить их все.
Помогите, пожалуйста, со строками)
кто может быстенько написать кода в НТМЛ табличку, на 4 столбца и 4 строки? помогите плиз!!
Помогите с командной строкой, пожалуйста...
паскальАВС... Строки.. помогите прошу вас