/* loes201.c Loesung der Aufgabe 2.01 */

#include <stdio.h>
#include <string.h>

void changezeichen (char *text, char cOld, char cNew)  /*
---------------------------------------------------------
ersetzt in der Zeichenkette text alle Zeichen cOld durch 
neues Zeichen cNew
--------------------------------------------------------*/
{
  unsigned int i;

  for (i = 0; i < strlen(text); i++)
    if (text[i] == cOld) text[i] = cNew;
}

int main(void)
{
  FILE *fin;
  char zeile[80];
  char c1, c2;
  int n = 0;      /* Anzahl der gelesenen Zeilen */

  if ((fin = fopen("ueb201.txt", "r")) ==
NULL) {
    printf("Datei ueb201.txt nicht gefunden!\n");
    return 1;
  }

  printf("%s%s%s",
    "Das Programm liest jetzt zeilenweise die Datei ueb201.txt\n",

    "und ersetzt die Zeichen c1 durch das Zeichen c2\n",

    "c1 c2 ? ");
  scanf("%c%*c%c", &c1, &c2);
  printf("Alle %c werden durch %c ersetzt\n", c1, c2);


  while ( fgets(zeile, 80, fin) != NULL) {
    n++;
    printf("Vorher : %s", zeile);
    changezeichen(zeile, c1, c2); 
    printf("Nachher: %s\n", zeile);
  }

  fclose(fin);
  printf("%3i Zeilen gelesen\n", n);

  return 0;

}