Подпрограммы: удалять из строки символы, имеющие нечетный номер - 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
. Цель функции — удалить из строки все символы, имеющие нечётный номер.
- Внутри функции объявляются две переменные:
i
- счётчик, который будет использоваться для перебора символов в строке;j
- счётчик, который будет использоваться для перебора символов в строке.
- Затем происходит инициализация счётчика
i
в ноль. - Далее в цикле перебираются все символы строки
S
. Если текущий символ:- больше или равен '0' и меньше или равен '9';
- и при этом имеет нечётный номер (т.е.
S[j] & 1
не равно нулю), то в тело цикла не происходит никаких действий (пустая инструкция;
). Это означает, что все символы с нечётными номерами удаляются из строки.
- В противном случае (т.е. текущий символ не является цифрой с нечётным номером) символ копируется из строки
S
в переменнуюS[i++]
. При этомi
увеличивается на единицу после каждого добавления символа. - После завершения цикла в строку
S[i]
добавляется символ'\0'
, который является маркером конца строки. - В функции
main
создаётся массивQ
типаchar
размером 100. - Затем пользователю предлагается ввести строку, которую необходимо обработать.
- Введённая строка сохраняется в массиве
Q
. - Функция
delDig
вызывается для обработки строкиQ
. - Результат обработки выводится на экран.
- Программа завершается с возвращаемым значением 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д