В строке каждую группу рядом стоящих символов "+" заменить одним таким символом - 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()
- Ввод-вывод данных завершается автоматически, поэтому программа заканчивается на этом шаге
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д