Подпрограммы: удалять из строки символы, имеющие нечетный номер - 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, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д