Usuwanie znaku z tekstu.

0

Witam, mam za zadanie usunąć pierwsze wystąpienie znaku z danego tekstu-plik txt i go wypisać. Napisałem taki program, który działa, ale nie dotyczy on polskich znaków, które też musi uwzględniać. Co zrobić, żeby czytało polskie znaki z pliku i później je wypisywało, a nie jakieś "znaczki"? Byłbym wdzięczny gdyby mi ktoś podpowiedział co muszę zrobić, albo poprawił poniższy kod.

#include <stdio.h>
#include <stdlib.h>


int main(int argc, char *argv[]) {
	int i=0, k=0;
	char d[256], ,b;
	char znak=' ';

	printf("Podaj znak do usuniecia: ");
    znak = getchar();

	FILE *fd;
	if((fd=fopen("tekst.txt", "r")) == NULL)
    {
        printf("Nie mozna otworzyc programu-bledna nazwa, lub plik nie istnieje\n");
        exit(EXIT_FAILURE);
    }

	while ((b=d[i]=getc(fd))!=EOF)
	{
		if (b == znak && k<1)
		{
			while (d[i] != '\0')
			{
				d[i] = d[i + 1];
                i++;
				k++;
			}

		}
		putchar(d[i]);
		i++;
	}
    if (k==0)
    {
        printf("\n nie znaleziono danego znaku w tekscie\n");
    }
	printf("\n");
	system("pause");
	return 0;
}

0

Nie wiem czy do char-a "ogonka" zmieścisz, bo zwykle są jako 2-znaki. Dodatkowo dochodzi sprawa samego kodowania, musisz w programie używać takiego samego jak w pliku.

0

No właśnie siedzę nad tym już od kilku godzin i nic mi do głowy nie przychodzi ;d
Modyfikowałem ten program chyba na 10 sposobów i albo to nic nie zmieniało, albo program wcale nie działał :/

1 użytkowników online, w tym zalogowanych: 0, gości: 1