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