Сформировать символьную строку, скопировав в нее всё принятые из командной строки аргументы - C (СИ)
Формулировка задачи:
Сформировать символьную строку, скопировав в нее всё принятые из командной строки аргументы, при этом каждое число заключить в круглые скобки.
Заранее благодарен за помощь.
Решение задачи: «Сформировать символьную строку, скопировав в нее всё принятые из командной строки аргументы»
textual
Листинг программы
#include <stdio.h> int main(int argc, char* argv[]) { char result[1024]; char* presult = result, * str; int i; for (i = 1; i < argc; ++i) { for (str = argv[i]; *str; ++str) { if (('0' <= *str) && (*str <= '9')) { sprintf(presult, "(%c)", *str); presult += 3; } else { *presult++ = *str; } } } *presult = 0; printf("%s\n", result); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлены две переменные:
result
иpresult
. Первая для хранения результата, вторая для хранения указателя на первый символ результата. - Инициализируется счётчик
i
для первого цикла, который будет перебирать все аргументы командной строки, начиная со второго (не включая нулевой аргумент, который содержит имя программы). - Задаются начальные значения
str
иpresult
. - В первой ветке цикла перебираются все аргументы командной строки.
- Во второй ветке цикла перебираются все символы текущего аргумента.
- Если текущий символ является числом (в диапазоне от '0' до '9'), то он добавляется в результат, предварительно обернутый в скобки.
- Если текущий символ не является числом, то он просто добавляется в результат.
- После окончания второго цикла, значение
presult
обнуляется, чтобы указать на первый символ результата. - Результат выводится на экран.
- Программа возвращает 0, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д