Удалить из строки все сдвоенные, строенные, и т.д. символы - 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;
}

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

В этом коде задача удаления повторяющихся символов из строки. Вот список действий, которые происходят в коде:

  1. Ввод строки с помощью функции getchar().
  2. Создание двух массивов символов: s и s1.
  3. Инициализация счётчика i для цикла, который будет проходить по каждому символу строки.
  4. Инициализация флага flag для проверки на повторяющиеся символы.
  5. Начало цикла, который проходит по каждому символу строки.
  6. Проверка, является ли текущий символ таким же, как предыдущий. Если да, то изменяется флаг flag.
  7. Если флаг flag равен 0, то текущий символ копируется в массив s1.
  8. После окончания цикла, в массиве s1 остаётся строка без повторяющихся символов.
  9. Добавление нулевого символа в конец массива s1 с помощью s1[j] = '\0';.
  10. Вывод результата с помощью функции printf(%s\n, s1);.
  11. Возврат 0, что означает успешный конец работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 3.857 из 5
Похожие ответы