Я новичок в программировании на C, но имею опыт работы на других языках.structs, указатели и их изменение
В настоящее время я изучаю структуры и указатели. Мое задание состоит в том, чтобы отсортировать несколько имен с помощью структур и указателей.
Я начал с создания структуры и функции для замены 2 имен. Я просто не могу понять, что пойдет не так, когда я хочу объявить массив со структурой.
Это ошибка я получаю, когда я компилирую:
pr.c:29:22: error: expected expression
studenten[i]={s[i][0],s[i][1],s[i][2]};
^
1 error generated.
Вот код:
#include <stdio.h>
#define MAXSTUDENT 2
typedef struct {
char *firstname;
char *pre;
char *lastname;
} student;
void swap(student **a,student **b) {
student *temp;
temp=*a;
*a=*b;
*b=temp;
}
int main() {
int i;
char *s[MAXSTUDENT][3]={{"John"," the ","Way"},{"John"," ","Smith"}};
student *studenten[MAXSTUDENT];
for (i=0;i<MAXSTUDENT;i++) {
studenten[i]={s[i][0],s[i][1],s[i][2]};
}
printf("%s%s%s - %s%s%s\n",studenten[0]->firstname,studenten[0]->pre,studenten[0]->lastname,studenten[1]->firstname,studenten[1]->pre,studenten[1]->lastname);
swap(&studenten[0],&studenten[1]);
printf("%s%s%s - %s%s%s\n",studenten[0]->firstname,studenten[0]->pre,studenten[0]->lastname,studenten[1]->firstname,studenten[1]->pre,studenten[1]->lastname);
}
В чем проблема? Вы получаете сообщение об ошибке? Если да, то где? –
добавлен в вопрос, спасибо – RG337
http://www.cplusplus.com/reference/cstring/strcpy/ –