Sono un po 'sorpreso da quanto segue.Assegnazione di stringhe a matrici di caratteri
Esempio 1:
char s[100] = "abcd"; // declare and initialize - WORKS
Esempio 2:
char s[100]; // declare
s = "hello"; // initalize - DOESN'T WORK ('lvalue required' error)
mi chiedo il motivo per cui il secondo approccio non funziona. Sembra naturale che dovrebbe (funziona con altri tipi di dati)? Qualcuno potrebbe spiegarmi la logica dietro a questo?
Buona risposta, tranne che non si dovrebbe mai usare strcpy semplice più a lungo. Usa strncpy o strlcpy. – dwc
Inoltre, s dovrebbe essere const char *, non char *. – aib
's [0] = 'x'; s [1] = 'y'; s [2] = 'z'; s [3] = 'm'; 'funziona se si desidera sostituire i caratteri della stringa uno per uno anche dopo l'inizializzazione. – RBT