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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
void delDig(char *S)
{
    int i,j;
    i=0;
    for (j=0; S[j]; j++){
        if ((S[j] >= '0') && (S[j] <= '9') && S[j]&1)
            ;
        else
            S[i++] = S[j];
    }
    S[i] = '\0';
}
 
int main(int argc, char* argv[])
{
    char Q[100];
    printf( "Vvod stroki:\n" );
    gets(Q);
    delDig(Q);
    printf("%s\n",Q);
    return 0;
 
}

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

В данном коде представлена функция 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
Похожие ответы