Прежде всего обратите внимание, что
char var="K"
это не правильно. Для инициализации char
сделайте
char var='K';
Тогда обратите внимание, что
strcpy(temp,var);
- недопустимый код, поскольку var
- это не строка, а один символ.
Это можно исправить, выполнив:
char temp[12]={0};
char array[12]="12345678";
char var='K';
temp[0] = var; // Put the char as first character of temp
strncat(temp,array,sizeof(array));
strcpy(array,temp);
Лучшим вариантом будет memmove
- что-то вроде:
// Move the current string 1 to the right (incl. the zero termination)
memmove(array+1, array, strlen(array) + 1);
// Insert the char in front
array[0] = var;
Если вы не хотите использовать memmove
, вы также можете просто сделать простой цикл:
size_t i = strlen(array);
do
{
array[i+1] = array[i];
--i;
} while (i > 0);
array[0] = var;