Я понимаю, что это довольно рудиментарный вопрос, но я все еще изучаю массивы символов C, указатели и тому подобное, поэтому любая помощь будет принята с благодарностью.
В настоящее время "строка" хранится в myargs[1]
где myargs был определен как char *myargs[2]
.Для этого примера предположим, что строка выглядит следующим образом: «Привет, как дела» (включая завершающий пробел).Я хотел бы лишить "строку" своего заднего пространства.Я понимаю, что массивы char - это строки в C и что массив char должен заканчиваться символом '\0'
.Тем не менее, я не уверен, как добиться этого в такой ситуации.
РЕДАКТИРОВАТЬ:
Чтобы дать немного больше контекста: я пытаюсь объединить строки, считанные из командной строки водна строка хранится по адресу в myargs [1].Между каждой из строк я добавляю пробел, и это делается в цикле while, пока не будет выполнено условие завершения.Однако, поскольку один пробел добавляется до завершения цикла, мне нужно удалить этот последний пробел.Краткие фрагменты соответствующего кода:
char *myargs[2];
while (parameterIndex != argc && strcmp(argv[parameterIndex], "+") != 0) {
printf("%d", parameterIndex);
printf("\n");
strcat(myargs[1], argv[parameterIndex]);
strcat(myargs[1], " ");
parameterIndex = parameterIndex + 1;
}
Объединенные аргументы в myargs [1] будут использоваться в библиотечной функции execve для выполнения команды, которая в настоящее время хранится в myargs [0].