Удалить из строки все повторно входящие в неё символы - C (СИ)
Формулировка задачи:
Дана строка S. Удалить из неё всё повторно входящие в неё символы и напечатать результат.
Решение задачи: «Удалить из строки все повторно входящие в неё символы»
textual
Листинг программы
#include <stdio.h> #define N 255 int main(void){ char str[N]="aaaa. aaa fjd"; int i, j=0, d=0; while(str[d])++d; for(i=0; i<d; ++i) { if(str[i]=='\0'){++j; continue;} j=i+1; for(; j<d; ++j) { if(str[i]==str[j])str[j]='\0'; } } for(i=0; i<d; ++i) { if(str[i]=='\0') continue; else printf("%c",str[i]); } puts(""); return 0; }
Объяснение кода листинга программы
В этом коде на языке C выполняется следующая последовательность действий:
- В первой строке вводится строка, из которой необходимо удалить повторяющиеся символы. Эта строка сохраняется в массиве символов типа char с названием
str
. - Затем создаются три переменные:
i
- используется для прохождения по каждому символу исходной строки.j
- используется для прохождения по каждому символу второй раз, начиная с первого найденного повторяющегося символа.d
- используется для нахождения длины строки.
- Далее, с помощью цикла while, происходит проход по каждому символу строки до тех пор, пока не будет найден символ конца строки '\0'. Значение переменной
d
увеличивается на единицу после каждого прохода цикла, что позволяет найти длину строки. - Затем, с помощью двух вложенных циклов for, происходит удаление повторяющихся символов:
- Внешний цикл for проходит по каждому симвору исходной строки.
- Внутренний цикл for проходит по всем символам, начиная с первого найденного повторяющегося символа (переменная
j
). Если символ в текущей позиции равен символу в позицииj
, то символ в позицииj
заменяется на символ конца строки '\0'. Это приводит к удалению всех повторяющихся символов.
- Наконец, с помощью цикла for выводятся все символы исходной строки, кроме символов конца строки '\0'. Это делается с помощью оператора continue во внутреннем цикле for.
- В конце программы выводится символ новой строки, чтобы перейти на новую строку.
- Программа возвращает 0, что означает успешное выполнение.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д