Форум программистов, компьютерный форум CyberForum.ru

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

Войти
Регистрация
Восстановить пароль
 
Vlad9999
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 4
#1

Строки в структурах - C++

14.01.2013, 15:58. Просмотров 569. Ответов 9
Метки нет (Все метки)

Добрый день, объясните пожалуйста мне - начинающему, как в структуре можно обратиться к строке. Например структура:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
struct Record
{
bool aktiv;
int check_period;
bool port[10];
char Program_name[20];
int day;
int mes;
int ned;
int imp_on;
int imp_off;
TDateTime start;
TDateTime stop;
}
Programs;
Присвоение

C++
1
Programs.Program_name="aaa";
не проходит, хотя присвоение к одиночного символа, например:

C++
1
Programs.Program_name[2]='a';
без проблем.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2013, 15:58     Строки в структурах
Посмотрите здесь:

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

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

Указатели в структурах - C++
#include "stdafx.h" #include <iostream> using namespace std; enum Sex { Man, Woman }; struct Person

Сортировка в структурах[C++] - C++
Помогите с сортировкой. Мне нужно отсортировать спортсменов по возрастанию их среднего балла Я сделал с помощью простой вставки. Сам...

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

Рекурсия в структурах - C++
struct Element { Element *next; Element *prev; List Sub; }; class List { public:

Условие в структурах - C++
Задан список студентов:Фамилия,год рождения,пол.Вывести студентов мужского пола,отсортированных в алфавитном порядке.Ошибка в vibor.Не...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Afflicted
Обитатель форума
199 / 182 / 8
Регистрация: 28.10.2012
Сообщений: 543
14.01.2013, 16:32     Строки в структурах #2
строки так не копируются, вот как нужно:

C++
1
strcpy (Programs.Program_name, "aaa");
Vlad9999
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 4
14.01.2013, 16:43  [ТС]     Строки в структурах #3
Спасибо, а Вы не могли мне разъяснить ("разжевать") если не сложно конечно, почему вот так:

C++
1
2
char Name[20];
Name="aaa";
можно, а...
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
14.01.2013, 19:10     Строки в структурах #4
Vlad9999,
Сейчас ты создал массив, в который можно загрузить не более 20(от 0 до 19) литералов, формирующих привычную тебе строку. В приведенном тобой примере ты заполнил (0,1,2) ячейки литералами а.
P.S.
'a' - литерал
"aaa" - строка

В первом случае, ты не можешь structobject.Programm_name присвоить строку "aaa", решение этой проблемы тебе показал Afflicted.
Vlad9999
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 4
14.01.2013, 20:00  [ТС]     Строки в структурах #5
Спасибо, понял.

А не могли бы поподробнее про structobject.Programm_name...
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
14.01.2013, 20:06     Строки в структурах #6
Vlad9999, эм, в моем случае structobject.Programm_name это Programs.Program_name, где structobject это Programs

Вот развертка:
struct Record
{
..элементы..
char Program_name[20];
}
Programs; // Структурный переменная(объект)
IPavel
9 / 9 / 0
Регистрация: 14.01.2013
Сообщений: 102
14.01.2013, 21:08     Строки в структурах #7
Ну коль есть тема про структуры...
Спрошу здесь...
Присваиваю значение через strcpy как показано выше кирилицу...
И в последующем выводе из переменной получаю,
часть слова на руском а часть вопросиками...
Компилю g++ в debian.
Пробывал в ubuntu думал какой нибудь баг но тоже самое...
Отсюда вопрос,
Как быть с кирилицей????
На латинском алфавите всё нормально присваивается и выводится...
Массив очищаю перед записью.
Буду очень признателен кто подскажет!!!!
Euroman
27 / 23 / 1
Регистрация: 11.12.2012
Сообщений: 448
14.01.2013, 21:27     Строки в структурах #8
C++
1
2
char Name[20];
Name="aaa";
Странно, а у меня так не получается. Просто вы, наверное, путаете массив с именем типа, тогда берутся все элементы. А если имя массива берется потом без имени типа, то тут имеется ввиду конкретный элемент массива.
Pakisan
14 / 14 / 1
Регистрация: 04.01.2013
Сообщений: 61
14.01.2013, 21:47     Строки в структурах #9
Цитата Сообщение от Pakisan Посмотреть сообщение
Vlad9999,
Сейчас ты создал массив, в который можно загрузить не более 20(от 0 до 19) литералов, формирующих привычную тебе строку. В приведенном тобой примере ты заполнил (0,1,2) ячейки литералами а.
P.S.
'a' - литерал
"aaa" - строка

В первом случае, ты не можешь structobject.Programm_name присвоить строку "aaa", решение этой проблемы тебе показал Afflicted.
Эм, выше я неправ извиняюсь, не обратил внимание на то как ты присвоил, точнее пропустил, и да, я идиот.
Так ты не можешь определить строку.

Скорее всего тут идет приведение типов, в чар грузится значение типа int и потом согласно ASCII выводятся символы

Извиняюсь
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.01.2013, 23:46     Строки в структурах
Еще ссылки по теме:

Операция new в структурах - C++
Недавно начал изучать С++ и уже первые "трудности" :) Вот задание: 7. Вильям Вингейт (William Wingate) заведует службой анализа рынка...

Функции в структурах - C++
Учу С++ по книге Страуструпа, остановился на задании со структурами(*Определите структуру Date для хранения дат. Напишите функции для...

Виртуальные методы в структурах - C++
Почему не рекомендуется, или, даже, запрещено использовать виртуальные методы в структурах? Добавлено через 1 минуту И почему тоже...

Заполнение строк в структурах - C++
При выполнении программы: для первого элемента массива stud1 структуры student всё проходит нормально, все последующие итерации пропускают...

задание по сортировкам в структурах - C++
Помогите пожалуйста создать прогу нам даны студенты имеются 3 поля имя пол и возраст нам нужно рассортировать их имена по алфавиту(имена...


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

Или воспользуйтесь поиском по форуму:
Vlad9999
0 / 0 / 0
Регистрация: 14.01.2013
Сообщений: 4
14.01.2013, 23:46  [ТС]     Строки в структурах #10
C++
1
2
char Name[20];
Name="aaa";
Странно, а у меня так не получается. Просто вы, наверное, путаете массив с именем типа, тогда берутся все элементы. А если имя массива берется потом без имени типа, то тут имеется ввиду конкретный элемент массива. 10
Все правильно, спасибо, разобрался: можно только вот так:

C++
1
char Name[20]="aaa";
Со структурами та же песня.

C++
1
struct Record Programs={......,"aaa",.....};
Yandex
Объявления
14.01.2013, 23:46     Строки в структурах
Ответ Создать тему
Опции темы

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