Wpis z mikrobloga

Mirki z #programowanie mam mały problem.
Wpisuję w tablicę char jakieś słowo z polskimi znakami i chciałbym, aby program znalazł polski znak i go zamienił na odpowiednik bez polskich znaków. Próbowałem sprawdzać każdy element tablicy i porównywać z każdą literą polską i wtedy zamieniać, ale niestety coś nie wychodzi.
Język, w którym to piszę to C. Pomoże ktoś wydobyć polską literę? Tak na szybko wywnioskowałem, że to nie wychodzi, bo polski znak tak jakby zajmuje dwa pola w tablicy char, a ja porównuję tylko jedno pole za każdym razem. Oczywiście mogę się mylić xD

Mój kod:
#include

int main(void)
{

printf("Podaj tekst do wyswitleniea \n");
unsigned char tekst[80];
// scanf("%s", &tekst);
// scanf("%*[^\n]", sizeof(tekst)-1, tekst);
fgets(tekst, sizeof(tekst), stdin);
int x;
for(x = 0; x < strlen(tekst)-1; x++){
switch(tekst[x]){
case 'L':
tekst[x]='Z';
break;

}
printf("numer litery to %i \n", x+1);

printf("twoja litera to \n%d \n", tekst[x]);
}
printf ("%s", tekst);

return 0;
}
  • 8
@wszystkiefajnenickisazajete: wypisuję sobie na końcu przed returnem. Kiedy zamieniam tak jak wyżej "L" na "Z" to działa. A dlatego w for mam wypisane jako liczbę, bo porównuję to z ASCI, pozniej chce to podpiąć pod wyświetlacz LCD.
A kod chciałem dać w spoilerze, ale wrzuciło tylko linię jedną, więc usunąłem spoiler :P
@dagon_666: Jedyne co mi się udało skleić to to poniżej. Niestety dalej nie działa tak jak wydaje mi się, że powinno. Polskie znaki dalej zapisane jako 2 elementy i nie działa podmiana. Podmiana np L na K działa bez problemu.

#include
#include
#include

int main(void)
{
wchar_t tekst[256];
wprintf (L"Enter a sentence: ");
fgetws ( tekst, 256, stdin ); // includes newline characters
wprintf (L"You entered %u characters.\n",wcslen(tekst));
int x;
for(x
@dagon_666: dodane na początku w main. Nic się nie zmieniło. Znaków nie podmienia. Dodam jeszcze, że po przejściu na wchart przestało wyświetlać polskie znaki. Może warto dodać, że jestem na ubuntu.

Poprawka, teraz wyświetla polskie znaki, ale wciąż nie podmienia. Nie dodałem "
" pomiędzy pl a PL.

Jeszcze raz edit:
Już działa tak jak chciałem, dzięki bardzo :D
Teraz w switchu zamiast 'Ł' po prostu wpisuję liczbę jakiej odpowiada