В строке каждую группу рядом стоящих символов "+" заменить одним таким символом - 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);
- }
Объяснение кода листинга программы
- Подключить необходимые библиотеки для работы со строками и файловым вводом-выводом
- Объявить переменную
s
типаchar
и инициализировать её строковым литераломkldvj+++kldhv+djsc++++zdjhcv+
- Вычислить длину строки
s
с помощью функцииstrlen()
и сохранить результат в переменнойe
- Выделить память под указатель
p
на последнем символе строкиs
- В цикле
while
искать следующую пару символов++
с помощью функцииstrstr()
и сохранять указатель на первый найденный символ++
в переменнойp
- С помощью функции
memmove()
переместить символы, начиная сp + 1
и до конца строки, на позициюp
, перезаписывая их. Таким образом, пары символов++
заменяются на один символ++
- Повторять пункты 5-6 до тех пор, пока не будет найдена следующая пара символов
++
- Вывести измененную строку с помощью функции
printf()
- Ввод-вывод данных завершается автоматически, поэтому программа заканчивается на этом шаге
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д