Попытка скопировать строку в struct aray - PullRequest
1 голос
/ 02 марта 2020

Я пытаюсь скопировать строку в мой массив struct. Я получаю следующее сообщение об ошибке:

ошибка: ожидается ';', ',' или ')' перед '.' токен

для жирной линии. Я пробовал разные варианты, но безуспешно.

#include <stdio.h>
#include <string.h>

typedef struct Album {
    char Interpret[20];
    char Titel[10];
    int Jahr;
    int Zustand;
} album;

album regal[2];

strcpy(char *regal[0].Interpret, "Led Zeppelin");  // here

int main() {
    return 0;
}

Ответы [ 5 ]

1 голос
/ 02 марта 2020

В области действия файла вы можете размещать только объявления. Вы не можете использовать операторы.

Также нет необходимости определять массив как глобальный. И вызов функции strcpy неверен. Функция main может выглядеть как

int main() 
{
    album regal[2];

    strcpy(regal[0].Interpret, "Led Zeppelin");

    return 0;
}
1 голос
/ 02 марта 2020

Вы пытаетесь запустить оператор (в данном случае вызов функции) вне функции. Он должен быть перемещен внутрь main:

int main ()
{  
    strcpy(regal[0].Interpret, "Led Zeppelin");
    return 0;
}
0 голосов
/ 03 марта 2020

Линия strcpy (char regal [0] .Interpret, "Led Zeppelin"); // здесь должно быть внутри main. также regal уже определен, поэтому вам не нужен символ в функции strcpy.

0 голосов
/ 02 марта 2020

strcpy () - это функция из библиотеки "string".

Вы не можете вызывать функции в глобальной области видимости файла. Она должна иметь область действия, относящуюся к одной из функций main () вашей программы (например, если вы go попали в стек вызовов, вы попадете в функцию main ()) или к области действия конструктор класса / структуры, из которого вы создаете объект stati c.

Но вы можете присваивать значения или выполнять оператор в глобальной области видимости.

0 голосов
/ 02 марта 2020
Can't define struct outside of function, define in main, should look like:

#include <stdio.h>
#include <string.h>

typedef struct Album {
    char Interpret[20];
    char Titel[10];
    int Jahr;
    int Zustand;
} album;


int main() {
album regal[2];

strcpy(char *regal[0].Interpret, "Led Zeppelin"); 

    return 0;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...