В строке каждую группу рядом стоящих символов "+" заменить одним таким символом - C (СИ)

Узнай цену своей работы

Формулировка задачи:

В строке каждую группу рядом стоящих символов "+" заменить одним таким символом.

Решение задачи: «В строке каждую группу рядом стоящих символов "+" заменить одним таким символом»

textual
Листинг программы
  1. #include <string.h>
  2. #include <stdio.h>
  3.  
  4. int main()
  5. {
  6.     char s[] = "kldvj+++kldhv+djsc++++zdjhcv+";
  7.    
  8.     char *e = s + strlen(s);
  9.     char *p;
  10.     while ((p = strstr(s, "++")) != NULL)
  11.       memmove(p, p + 1, e - p);
  12.      
  13.     printf("%s\n", s);
  14. }

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

  1. Подключить необходимые библиотеки для работы со строками и файловым вводом-выводом
  2. Объявить переменную s типа char и инициализировать её строковым литералом kldvj+++kldhv+djsc++++zdjhcv+
  3. Вычислить длину строки s с помощью функции strlen() и сохранить результат в переменной e
  4. Выделить память под указатель p на последнем символе строки s
  5. В цикле while искать следующую пару символов ++ с помощью функции strstr() и сохранять указатель на первый найденный символ ++ в переменной p
  6. С помощью функции memmove() переместить символы, начиная с p + 1 и до конца строки, на позицию p, перезаписывая их. Таким образом, пары символов ++ заменяются на один символ ++
  7. Повторять пункты 5-6 до тех пор, пока не будет найдена следующая пара символов ++
  8. Вывести измененную строку с помощью функции printf()
  9. Ввод-вывод данных завершается автоматически, поэтому программа заканчивается на этом шаге

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


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

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

8   голосов , оценка 4.125 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы