Ich versuche, über structs in C zu lernen, aber ich verstehe nicht, warum ich nicht den Titel, wie ich mein Beispiel zuordnen:C struct Problem
#include <stdio.h>
struct book_information {
char title[100];
int year;
int page_count;
}my_library;
main()
{
my_library.title = "Book Title"; // Problem is here, but why?
my_library.year = 2005;
my_library.page_count = 944;
printf("\nTitle: %s\nYear: %d\nPage count: %d\n", my_library.title, my_library.year, my_library.page_count);
return 0;
}
Fehlermeldung:
books.c: In function ‘main’:
books.c:13: error: incompatible types when assigning to type ‘char[100]’ from type ‘char *’
Danke, nach dem Hinzufügen von "# include" das Programm kompiliert und funktioniert wie erwartet. Alle Beispiele, die ich gefunden habe, haben scanf benutzt oder bekommen, um die Zeichenfolgen zu füllen, und das macht für mich jetzt Sinn. –
Danke Peter. Ich würde die 'strncpy'-Alternativen in Betracht ziehen, außer Sie sind sicher, dass Ihre Eingabedaten immer klein genug sind, um zu passen. –
Auch wenn strings.h möglicherweise an Ihrer Implementierung arbeitet, sollten Sie strcpy unbedingt mit string.h deklarieren. –