title: C - why is strcpy() necessary
body: <p>Can someone please explain to me why strcpy() is necessary to assign strings to character arrays, such as in the following code snippet.</p>
  
  <pre><code>int main(void) {
  
  char s[4];
  
  s = "abc"; //Fails
  strcpy(s, "abc"); //Succeeds
  
  return 0;
  }
  </code></pre>
  
  <p>What is the reason that <code>s = "abc"</code> fails? And why is strcpy() the only way to assign strings to char arrays after they have been declared? It seems strange to me that you have to use a function to carry out a basic assignment. </p>