Удалить из строки все сдвоенные, строенные, и т.д. символы - C (СИ)
Формулировка задачи:
Помогите пожалуйста)
вот задание)
Составить программу, которая вводит строку символов, выполняет
ее обработку в соответствии с заданием и выводит результаты.
Задание: удалить из строки все сдвоенные, строенные и т.д.
символы
Решение задачи: «Удалить из строки все сдвоенные, строенные, и т.д. символы»
textual
Листинг программы
#include <stdio.h> const int N = 20; int main() { char s[N], s1[N]; int i = 0, flag = 0, j = 0; printf("Input string:\n"); while((s[i] = getchar()) != EOF && s[i] != '\n' && i < N - 1){ if(s[i] == s[i - 1]){ flag = 1; i++; } else flag = 0; if(flag == 0){ s1[j] = s[i]; i++; j++; } } s1[j] = '\0'; printf("%s\n", s1); return 0; }
Объяснение кода листинга программы
В этом коде задача удаления повторяющихся символов из строки. Вот список действий, которые происходят в коде:
- Ввод строки с помощью функции
getchar()
. - Создание двух массивов символов:
s
иs1
. - Инициализация счётчика
i
для цикла, который будет проходить по каждому символу строки. - Инициализация флага
flag
для проверки на повторяющиеся символы. - Начало цикла, который проходит по каждому символу строки.
- Проверка, является ли текущий символ таким же, как предыдущий. Если да, то изменяется флаг
flag
. - Если флаг
flag
равен 0, то текущий символ копируется в массивs1
. - После окончания цикла, в массиве
s1
остаётся строка без повторяющихся символов. - Добавление нулевого символа в конец массива
s1
с помощьюs1[j] = '\0';
. - Вывод результата с помощью функции
printf(
%s\n, s1);
. - Возврат 0, что означает успешный конец работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д