Если в строке символов подряд встречаются буква и цифра, то удалить цифру - C (СИ)
Формулировка задачи:
Ввести произвольной строку символов. если подряд встречаются буква i цифра, то изъять цифру;
Посчитать количество выполненных операций удаления. Вывести полученную строку.
Решение задачи: «Если в строке символов подряд встречаются буква и цифра, то удалить цифру»
textual
Листинг программы
#include <stdio.h> #include <stdlib.h> int chisloli(char a) { if(a > '0' && a < '9') return 1; return 0; } void swap(char *a , char *b) { char tmp = *a; *a = *b; *b = tmp; } int main() { char mas[20]; gets(mas); int i; int m = 0; int j; for(i = 0; i < strlen(mas); i++) { if(!chisloli(mas[i]) && chisloli(mas[i+1])) { m++; for(j = i+1; j < strlen(mas);j++) swap(&mas[j], &mas[j+1]); mas[j] = '\0'; } } printf("%s", mas); }
Объяснение кода листинга программы
- #include
- подключает файл стандартного ввода/вывода - #include
- подключает файл стандартных функций - int chisloli(char a) - функция принимает один аргумент типа char, проверяет является ли символ цифрой, если да, то возвращает 1, иначе 0
- void swap(char a , char b) - функция принимает два указателя на символы и меняет их местами
- int main() - функция main() является точкой входа в программу
- char mas[20]; - объявление массива символов на 20 элементов
- gets(mas); - ввод строки с помощью функции gets()
- int i; - объявление переменной для цикла
- int m = 0; - объявление переменной для подсчета количества пар символов, где первый не является цифрой, а второй является
- int j; - объявление переменной для цикла
- for(i = 0; i < strlen(mas); i++) { - цикл по всем символам строки
- if(!chisloli(mas[i]) && chisloli(mas[i+1])) { - проверка, что текущий символ не цифра и следующий символ является цифрой
- m++; - увеличение счетчика, если условие выполняется
- for(j = i+1; j < strlen(mas);j++) swap(&mas[j], &mas[j+1]); - цикл, который меняет местами символы, начиная с i+1 и до конца строки, при этом не меняя последний символ (так как он уже за пределами массива)
- mas[j] = '\0'; - добавление нулевого символа в конец строки после всех перемещений
- } - конец условия проверки
- printf(
%s
, mas); - вывод строки на экран с помощью функции printf() - } - конец цикла for()
- } - конец функции main()
- } - конец программы
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д