Удалить из строки все двойные символы - C (СИ) (75115)
Формулировка задачи:
Дана строка. Удалить из строки все двойные символы. Пример: “asddewwf” → “asdewf”.
Помогите пожалуйста разобраться в чем ошибка.
#include <stdio.h> int main(int argc, char *argv[]) { char s[255]; unsigned int i, n; printf("Vvedite razmer stroki: "); scanf("%u", &n); n++; printf("Vvedite stroky: \n"); //ввод массива {for (i=0; i<n; i++) scanf("%c", &s[i]); } for (i=1; i<n; i++) { while (s[i-1]==s[i]) {s[i]=s[i+1]; break;}} //else continue; for (i=0;i<n;i++) printf("%c", s[i]); //вывод ответа printf("\n"); return 0; }
Решение задачи: «Удалить из строки все двойные символы»
textual
Листинг программы
#include <stdio.h> #include <conio.h> int main () { int n, i, j, k, f; char m[255]; clrscr(); printf("Vvedite razmer stroki\n"); scanf("%d", &n); n=n+1; printf("Vvedite stroky:\n"); for(i=0; i<n; i++) { scanf("%c", &m[i]); } printf("Do:\n"); for(i=0; i<n; i++) printf("%c", m[i]); f=0; for(i=0; i<n; i++) { for(j=i+1; j<n; j++) { if(m[i]==m[j]) { for(k=j; k<n; k++) m[k]=m[k+1]; n--; f=1; } } } if(f==1) { printf("\nPosle:\n"); for(i=0; i<n; i++) printf("%c ", m[i]); } getch(); }
Объяснение кода листинга программы
В этом коде удаляются все повторяющиеся символы из строки, введенной пользователем. Вот список действий, которые происходят в коде:
- Ввод размера строки от пользователя.
- Считывание строки от пользователя.
- Вывод строки на экран.
- Поиск повторяющихся символов в строке.
- Если повторяющиеся символы найдены, то они удаляются из строки.
- Вывод измененной строки на экран.
- Проверка, были ли удалены повторяющиеся символы.
- Если повторяющиеся символы были удалены, то выводится измененная строка.
- Получение от пользователя команды для завершения работы программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д