# include <stdio.h>
struct s_liste{
char buchstabe;
struct s_liste *next;
};
struct s_liste *liste=NULL, *hilf;
void anhaengen(struct s_liste *liste,const struct s_liste *neu){
if(liste != NULL){
while(liste->next != NULL){
liste=liste->next;
}
liste->next=neu;
}
else{
liste=neu;
}
}
void freigabe(const struct s_liste *liste){
if(liste != NULL){
while(liste->next != NULL){
free(liste);
liste=liste->next;
}
}
else{
free(liste);
}
}
void ausgabe(const struct s_liste *liste){
if(liste != NULL){
while(liste->next != NULL){
printf("%c",liste->buchstabe
);
liste=liste->next;
}
printf("%c",liste->buchstabe
);
}
}
int suchen(struct s_liste *liste, const char buchstabe){
int anzahl=0;
if( liste!= NULL ){
while(liste->next != NULL){
if(liste->buchstabe == buchstabe){anzahl++;}
liste=liste->next;
}
if(liste->buchstabe==buchstabe){anzahl++;}
}
return anzahl;
}
void entfernen(struct s_liste *liste, const char buchstabe){
if(liste != NULL){
while(liste->next != NULL && liste->next->buchstabe!= buchstabe){
liste=liste->next;
}
if(liste->next ==
NULL){printf("Element nicht gefunden");
}
else{hilf=liste->next->next;
liste->next=hilf;}
}
}
int main(){
struct s_liste *liste= NULL;
char input,temp;
scanf("%c%c",&input,&temp);
while(((input>='A') && (input<='Z')) || ((input>='a') && (input<='z'))){
if(liste==NULL){liste=malloc(sizeof(struct s_liste));}
struct s_liste *neu;
neu=malloc(sizeof(struct s_liste));
neu->buchstabe=input;
neu->next=NULL;
anhaengen(liste,neu);
scanf("%c%c",&input,&temp);
}
ausgabe(liste);
printf("Welchen Buchstaben entfernen?");
char b;
scanf("%c%c",&b,&temp);
int i=suchen(liste,b);
while(i){
printf("Buchstabe kommt %i mal vor\n",i
);
entfernen(liste,b);
ausgabe(liste);
i=suchen(liste,b);
}
if(i==
0){printf("Buchstabe nicht vorhanden\n");
}
ausgabe(liste);
freigabe(liste);
system("pause");
}