Hello, ten kod ma zamienić polskie znaki na zwykłe litery, w sensie, że cyfrze 'A' odpowiada liczba 1 i liczbie 'Ą' odpowiada liczba 1 tak samo 'C' to 3 i 'Ć' to 3.
if (polecenie == 1)
{
const int tabD = 36;
char tab[tabD] = { ' ', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J',
'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'Ą', 'Ć', 'Ę', 'Ł', 'Ń', 'Ó', 'Ś', 'Ź', 'Ż' };
changecol(10);
system("cls");
cout << "===========================Wpisz swoje imię lub wyraz===========================";
string imie;
cout << endl << endl << endl;
cin.ignore();
getline(cin, imie);
transform(imie.begin(), imie.end(), imie.begin(), ::toupper);
int liczba[20];
int dlugosc = imie.length();
for (int i2 = 0; i2 < dlugosc; i2++)
{
for (int i3 = 0; i3<tabD; i3++)
{
if (imie[i2] == tab[i3]) liczba[i2] = i3;
}
if (liczba[i2] == 27) liczba[i2] = 1; else if (liczba[i2] == 28) liczba[i2] = 3; else if (liczba[i2] == 29) liczba[i2] = 5; else if (liczba[i2] == 30) liczba[i2] = 12; else if (liczba[i2] == 31) liczba[i2] = 14; else if (liczba[i2] == 32) liczba[i2] = 15; else if (liczba[i2] == 33) liczba[i2] = 19; else if (liczba[i2] == 34) liczba[i2] = 26; else if (liczba[i2] == 35) liczba[i2] = 1;
cout << liczba[i2];
}
cout << endl << endl << " Obliczanie...";
Sleep(2000);
}
Co jest nie tak w tym kodzie, że gdy wpisuje ą to pisze 1, a gdy już inne polskie znaki piszę to wyskakują mi jakieś ujemne cyfry tak jak na zdjęciu, albo polskim znakom wypisuje złe cyfry np ć to 2, a c to 3. Nie wiem czemu taki niewyraźny obraz, chyba Pan Mirosław zmniejsza rozdzielczość, żeby mu limitu nie zżarło :D. W ogóle bardzo słaby chyba jestem w programowaniu jak ciągle mam jakieś problemy.