У вас есть две фатальные проблемы: во-первых, вам необходим доступ к args[i]
члену массива аргументов, а во-вторых, вы не можете напрямую назначить переменную input
, поскольку это массив.
Дополнительно:
- Вы должны убедиться, что в массиве
input
достаточно места;
- Это хороший стиль для явного возврата значения из
main()
;
- Пробелы дешевы, используйте его.
Вот как это выглядит с исправленными проблемами:
int main(int c, char **args)
{
int i;
char input[100];
bzero(input, 100);
for(i = 1; i < c; i++)
{
if (strlen(input) + strlen(args[i]) + 2 <= 100)
{
strcat(input, args[i]);
strcat(input, " ");
}
}
puts(input);
return 0;
}
(я также включил строку puts()
, чтобы вы могли видеть, что заканчивается в input
).