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