char kopieren, array[20]
printf("eingeben ..."):
scanf("%s", array);
if (strlen(array) > 20 )
{
strcpy(kopieren, array...);
Was müsste ich tun, um nur die ersten 20 Zeichen zu erfassen, wenn die Eingabe länger als 20 Zeichen ist?
1 Stimmen
Was soll das bedeuten?
copy
ist überhaupt kein Array.array
ist 20 Zeichen lang.array
kann einfach nicht länger als 20 Zeichen sein.0 Stimmen
Du bekommst Overflow mit scanf, wenn du mehr als 20 Bytes eingibst. Schau dir fgets an.
0 Stimmen
@James strncpy beendet das Ergebnis nicht unbedingt mit einem NUL -- fast nie das, was man möchte (der ursprüngliche Zweck war das Kopieren von UNIX-Verzeichniseinträgen, die 14 Bytes lang waren und mit einem NUL abgeschlossen wurden, wenn sie kürzer waren). In jedem Fall ist es hier nicht anwendbar.