Сформировать символьную строку, скопировав в нее всё принятые из командной строки аргументы - 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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены две переменные: result и presult. Первая для хранения результата, вторая для хранения указателя на первый символ результата.
  2. Инициализируется счётчик i для первого цикла, который будет перебирать все аргументы командной строки, начиная со второго (не включая нулевой аргумент, который содержит имя программы).
  3. Задаются начальные значения str и presult.
  4. В первой ветке цикла перебираются все аргументы командной строки.
  5. Во второй ветке цикла перебираются все символы текущего аргумента.
  6. Если текущий символ является числом (в диапазоне от '0' до '9'), то он добавляется в результат, предварительно обернутый в скобки.
  7. Если текущий символ не является числом, то он просто добавляется в результат.
  8. После окончания второго цикла, значение presult обнуляется, чтобы указать на первый символ результата.
  9. Результат выводится на экран.
  10. Программа возвращает 0, что означает успешное завершение работы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы