Jak wpisywać tekst do tablicy?

0
 #include<stdio.h>
int main()
{
    char name[31];
    scanf("%s",name);
}

czy

scanf("%30s",name)

jak lepiej ten tekst wpisywać? Czy w przypadku pierwszym jeśli użytkownik poda słowo składające się z 40 liter to litery po 30 znaku zajmą jakieś inne miejsce w pamięci ?

Czy w przypadku drugim jak użytkownik poda wyraz ponad 30 literowy to już tak nie będzie ? Litery po 30 znaku nie będą brane pod uwagę przez kompilator ?

1
scanf("%30s",name);
fgets(name,31,stdin);
1
scanf("%s",name);
scanf("%30s",name);

W pierwszym przypadku to klasyczne UB, w praktyce buffer overrun. W drugim przypadku wczyta max 30 znaków, ale nie kompilator, tylko funkcja ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1