Удаление комбинации символов из массива. - C (СИ)
Формулировка задачи:
Доброго времени суток. Прошу помочь в таком вопросе: нужно удалить из введённой (не более 100 знаков) строки комбинацию букв "the".
#include <stdio.h> #include <conio.h> int main () { char str[100],str1[100]; int i,x,j; printf ("Vvedite stroku simvolov(ne bolee 100 elementov)\n"); scanf ("%s",str); x=sizeof str/sizeof str[0]; for (i=0;i<x;i++) { if (str[i]=='t'&&str[i+1]=='h'&&str[i+2]=='e') { for (j=i;j<i+3;j++) { str1[j]=str[i]; } } } printf ("%s",str1); getch(); return 0; }
Решение задачи: «Удаление комбинации символов из массива.»
textual
Листинг программы
#include <stdio.h> #include <conio.h> int main () { char str[100];//, str1[100]; можно обойтись одним массивом int i, x, j; printf ("Vvedite stroku simvolov(ne bolee 100 elementov)\n"); scanf ("%s", &str); x = sizeof(str) / sizeof(char); //printf("%d, %s", x, str); j = 0; for (i=0; i<x; i++) { //когда встречаем комбинацию "the" if (str[i-3]=='t'&&str[i-2]=='h'&&str[i-1]=='e') { //"откатываемся" назад на три символа. j -= 3; } str[j] = str[i]; j++; } printf ("%s",str); getch(); return 0; }
Объяснение кода листинга программы
В этом коде:
- Объявлен массив символов
str
размером 100 символов. - С помощью функции
scanf
в этот массив считывается строка символов, введенная пользователем. - Вычисляется размер массива
str
в байтах, который сохраняется в переменнойx
. - В переменной
j
инициализируется счетчик, который будет использоваться для отслеживания индекса первого символа комбинацииthe
в массивеstr
. - В цикле
for
происходит сравнение каждого символа массиваstr
с символами комбинацииthe
. Если комбинация найдена, то счетчикj
откатывается назад на три символа, чтобы сохранить остальные символы без изменений. - После цикла
for
выводится массивstr
. - В конце программы вызывается функция
getch
, которая ожидает нажатия клавиши пользователем, и функцияreturn 0
, которая завершает программу.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д