Вы не можете использовать массив для инициализации другого массива. И вы не можете использовать присваивание между массивами.
Единственный способ - сделать явное копирование из одного массива в другой. А для байтовых строк с нулевым символом в конце, то обычным способом через strcpy
:
char str1[100] = "This is a string";
char temp[100];
strcpy(temp, str1);
И чтобы получить правильное объявление strcpy
, вы должны включить <string.h>
. Обойти это невозможно (если только вы не хотите написать свою strcpy
-подобную функцию, против которой я настоятельно рекомендую).
Конечно, вы также можете скопировать весь массив, включая все неинициализированное содержимое, используя memcpy
, но он также объявлен в <string.h>
.