Удалить из строки все буквы, равные последней букве предложения - C (СИ)
Формулировка задачи:
надо что бы он прочитав последнею букву в предложение удалял все такие же буквы в самом предложение кроме нее самой!
#include <stdio.h> #include <stdlib.h> int main() { char str[50]; gets(str); int i,j; char tmp=str[strlen(str)-1]; for (i=0;i<strlen(str);i++){ if((str[i]==tmp)){ for(j=i;j<strlen(str)-1;j++){ str[j]=str[j+1]; } str[strlen(str)-1]=NULL; } } printf("%s",str); return 0; }
Решение задачи: «Удалить из строки все буквы, равные последней букве предложения»
textual
Листинг программы
size_t len = strlen(str); size_t i, j; for (i=0, j=0; str[j]; j++) if (str[j] != tmp) str[i++] = str[j] str[i++] = tmp; str[i] = 0;
Объяснение кода листинга программы
- В первой строке определяется функция
strlen
, которая вычисляет длину строкиstr
. - Затем в циклах
for
перебираются символы строкиstr
. - Внутри циклов проверяется, равен ли текущий символ последнему символу строки
tmp
. - Если символы не равны, то текущий символ добавляется в новую строку
str
с индексомi
. - После каждой итерации
i
увеличивается на 1. - В конце
str
добавляется последний символtmp
. - Наконец,
str
заканчивается нулевым символом.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д