Подпрограммы: удалять из строки символы, имеющие нечетный номер - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите составить программу. Задание: создать программу, с помощью которой можно будет задавать строку символов с консоли и которая будет удалять имеющие нечетный номер символы. Что-то типо этого:
Листинг программы
  1. #include <stdio.h>
  2. #include <string.h>
  3. Функция()
  4. {
  5. Нахождение нечетных символов и их удаление
  6. }
  7. int main()
  8. {
  9. Задание строки из символов
  10. }

Решение задачи: «Подпрограммы: удалять из строки символы, имеющие нечетный номер»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. void delDig(char *S)
  4. {
  5.     int i,j;
  6.     i=0;
  7.     for (j=0; S[j]; j++){
  8.         if ((S[j] >= '0') && (S[j] <= '9') && S[j]&1)
  9.             ;
  10.         else
  11.             S[i++] = S[j];
  12.     }
  13.     S[i] = '\0';
  14. }
  15.  
  16. int main(int argc, char* argv[])
  17. {
  18.     char Q[100];
  19.     printf( "Vvod stroki:\n" );
  20.     gets(Q);
  21.     delDig(Q);
  22.     printf("%s\n",Q);
  23.     return 0;
  24.  
  25. }

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

В данном коде представлена функция delDig, которая принимает в качестве аргумента строку S. Цель функции — удалить из строки все символы, имеющие нечётный номер.

  1. Внутри функции объявляются две переменные:
    • i - счётчик, который будет использоваться для перебора символов в строке;
    • j - счётчик, который будет использоваться для перебора символов в строке.
  2. Затем происходит инициализация счётчика i в ноль.
  3. Далее в цикле перебираются все символы строки S. Если текущий символ:
    • больше или равен '0' и меньше или равен '9';
    • и при этом имеет нечётный номер (т.е. S[j] & 1 не равно нулю), то в тело цикла не происходит никаких действий (пустая инструкция ;). Это означает, что все символы с нечётными номерами удаляются из строки.
  4. В противном случае (т.е. текущий символ не является цифрой с нечётным номером) символ копируется из строки S в переменную S[i++]. При этом i увеличивается на единицу после каждого добавления символа.
  5. После завершения цикла в строку S[i] добавляется символ '\0', который является маркером конца строки.
  6. В функции main создаётся массив Q типа char размером 100.
  7. Затем пользователю предлагается ввести строку, которую необходимо обработать.
  8. Введённая строка сохраняется в массиве Q.
  9. Функция delDig вызывается для обработки строки Q.
  10. Результат обработки выводится на экран.
  11. Программа завершается с возвращаемым значением 0, что означает успешное выполнение.

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы