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

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

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

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

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

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

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

  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
Похожие ответы