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

Описание структуры с полем массив - C++

Восстановить пароль Регистрация
 
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 01:01     Описание структуры с полем массив #1
Здравствуйте!
Было необходимо описать структуру с именем KLASS, содержащую следующие поля:
1) фамилия,имя
2)день рождения(массив из трех чисел)
Bash
1
2
3
4
5
 #include <stdio.h>
struct KLASS
{ char fam_name[23];
  mas[3] day;
};
хммм....чувствую не так...а как бы еще написать...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2011, 01:01     Описание структуры с полем массив
Посмотрите здесь:

Описание структуры TRAIN C++
Описание структуры C++
Важно: Описание структуры C++
C++ Описание структуры
Описание структуры C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
08.12.2011, 01:08     Описание структуры с полем массив #2
Может, так:
C++
1
2
3
4
5
6
struct KLASS
    {
        char* name;
        char* family;
        int date[3];
    };
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:14     Описание структуры с полем массив #3
Цитата Сообщение от Heidel Посмотреть сообщение
Может, так:
почему может точно)
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
08.12.2011, 01:14     Описание структуры с полем массив #4
Или даже так
C++
1
2
3
4
5
struct KLASS
        {
                char* family_name;
                int date[3];
        };
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 01:16  [ТС]     Описание структуры с полем массив #5
Цитата Сообщение от Heidel Посмотреть сообщение
int date[3]
Думаю это не совсем так. Это что-то вроде выделяемого места/позиций. Может и ошибаюсь
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:17     Описание структуры с полем массив #6
не согласен для работы будет удобнее отдельно имя отдельно фамилия задания бывают разного плана а вырезать кусок из строки не всегда хочеться

Добавлено через 1 минуту
Цитата Сообщение от Яна_Max Посмотреть сообщение
Думаю это не совсем так. Это что-то вроде выделяемого места/позиций. Может и ошибаюсь
это массив состоящий из 3 элементов date[0] date[1] date[2] каждый элемент будет иметь своё значение
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
08.12.2011, 01:19     Описание структуры с полем массив #7
A555, ну, по запросу ТС, "фамилия, имя" - одно поле, а там уж пусть сама разбирается, как будет удобнее.

Яна_Max, если поле "день рождения" нужно задать как массив из трех чисел, то задается оно именно так.
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 01:24  [ТС]     Описание структуры с полем массив #8
A555, а char fam_name [23] в таком случае тоже будет являться массивом?
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:54     Описание структуры с полем массив #9
да конечно массив
Mиxaил
 Аватар для Mиxaил
530 / 435 / 37
Регистрация: 10.12.2009
Сообщений: 1,857
08.12.2011, 01:57     Описание структуры с полем массив #10
C++
1
2
3
4
5
6
7
8
9
10
struct date
{
    unsigned int day, month, year;
};
 
struct Class
{
    std::string name;
    date d;
};
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 01:59     Описание структуры с полем массив #11
не самый просто вариант но сказать нечего он будет самым верным
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.12.2011, 02:08     Описание структуры с полем массив #12
Яна_Max, насколько я понимаю вы пишете на Си. В Си структуры используются в коде немного иначе.
C
1
2
3
4
5
struct list
{
    int value;
    struct list *next;
};
в данном случае list это имя структуры, оно везде в коде должно употреблятся с явным указанием ключевого слова struct. Это видно из того что в самой структуре есть указатель на такую же структуру. Идеальный вариант объявлять так
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
тут мы объявляем структуру с именем list и с помощью инструкции typedef обозначаем имя структуры struct list как тип list_t. Далее в коде мы можем уже оперировать типом list_t. Например
C
1
sizeof(struct list) == sizeof(list_t)
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:10     Описание структуры с полем массив #13
Цитата Сообщение от alkagolik Посмотреть сообщение
Яна_Max, насколько я понимаю вы пишете на Си. В Си структуры объявляются немного иначе.
C
1
2
3
4
5
struct list
{
    int value;
    struct list *next;
};
в данном случае list это имя структуры, оно везде в коде должно употреблятся с явным указанием ключевого слова struct. Это видно из того что в самой структуре есть указатель на такую же структуру. Идеальный вариант объявлять так
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
тут мы объявляем структуру с именем list и с помощью инструкции typedef обозначаем имя структуры struct list как тип list_t. Далее в коде мы можем уже оперировать типом list_t. Например
C
1
sizeof(struct list) == sizeof(list_t)
зачем так усложнять? и вы серьёзно с каких пор нормальные объявление структуры отменили?
Яна_Max
3 / 3 / 0
Регистрация: 08.11.2011
Сообщений: 137
08.12.2011, 02:42  [ТС]     Описание структуры с полем массив #14
Mиxaил, но можно так,как говорилось выше?
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:44     Описание структуры с полем массив #15
все варианты что писали верны
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.12.2011, 02:46     Описание структуры с полем массив #16
Цитата Сообщение от A555 Посмотреть сообщение
зачем так усложнять? и вы серьёзно с каких пор нормальные объявление структуры отменили?
не путать с плюсами. там такая вещь вполне нормальна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    s n;
    n.c = 'c';
    n.p = p;
}
в Си такой финт не прокатит, тоже самое на Си будет иметь такой вид
C
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    struct s n;
    n.c = 'c';
    n.p = p;
}
для того чтобы не заморачиваться на постоянное добавление struct name пре передаче в любую функцию, легче и наверное правильней "затайпдефить" ее в name_t.
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:48     Описание структуры с полем массив #17
Цитата Сообщение от alkagolik Посмотреть сообщение
не путать с плюсами. там такая вещь вполне нормальна
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    s n;
    n.c = 'c';
    n.p = p;
}
в Си такой финт не прокатит, тоже самое на Си будет иметь такой вид
C
1
2
3
4
5
6
7
8
9
10
11
12
13
struct s
{
    char c;
    char *p;
};
 
int main()
{
    char *p = "123456";
    struct s n;
    n.c = 'c';
    n.p = p;
}
для того чтобы не заморачиваться на постоянное добавление struct name пре передаче в любую функцию, легче и наверное правильней "затайпдефить" ее в name_t.
C
1
2
3
4
5
typedef struct list
{
    int value;
    struct list *next;
} list_t;
я имелл в виду это усложнение зачем объявлять в 2 структуры да щё и через указатль на стрктуру
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.12.2011, 02:50     Описание структуры с полем массив #18
Цитата Сообщение от A555 Посмотреть сообщение
я имелл в виду это усложнение зачем объявлять в 2 структуры да щё и через указатль на стрктуру
с опытом поймете.
A555
51 / 51 / 2
Регистрация: 04.04.2011
Сообщений: 209
08.12.2011, 02:53     Описание структуры с полем массив #19
Цитата Сообщение от alkagolik Посмотреть сообщение
с опытом поймете.
но не для этой задачи что здесь . здесь не динамическая структура данных
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2011, 04:22     Описание структуры с полем массив
Еще ссылки по теме:

Описание структуры ORDER C++
Как передать в функцию указание работы с конкретным полем структуры? C++
C++ Описание структуры NOTE

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

Или воспользуйтесь поиском по форуму:
alkagolik
 Аватар для alkagolik
1510 / 616 / 79
Регистрация: 15.07.2011
Сообщений: 3,552
08.12.2011, 04:22     Описание структуры с полем массив #20
A555, вроде как мои посты в этом топике вообще не имеют связи с задачей. Они слегка раскрывают ТС тонкости языка.
Yandex
Объявления
08.12.2011, 04:22     Описание структуры с полем массив
Ответ Создать тему
Опции темы

Текущее время: 04:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru