Question: Why two different strings of literals can't be replaced with = operator?
i thought maybe it's because that they are an array of literals and two different arrays cant be replaced 
wondered if there is another reason and if what i said is nonsense 
example:

```
char s1[] = "ABCDEFG";
char s2[] = "XYZ";
s1=s2; ERROR

```

i know how to replace them but don't know why cant be replaced in that way

Answer: 
Arrays have no the assignment operator and may not be used as initializers for other arrays because they are converted to pointers to their first elements when are used in expressions.

Use standard C function `strcpy` declared in header `<cstring>` if you want "to assign" one character array to other that contain strings. For example

```
#include <cstring>

//...

char s1[] = "ABCDEFG";
char s2[] = "XYZ";

//...

std::strcpy( s1, s2 );

```

Take into account that in general case s1 must be large enough to accomodate all characters of s2 including the treminating zero.
If you're using C++, and apparently you're not very familiar with pointers....using std::string could be easier for you:

```
#include <string>
std::string s1 = "ABCDEFG";
std::string s2 = "XYZ";
s1=s2; // No ERROR!

```