CYFROWY BARON • PROGRAMOWANIE • Zobacz wątek - Polskie znaki jako klucze mapy STL

Polskie znaki jako klucze mapy STL

dział ogólny

Polskie znaki jako klucze mapy STL

Nowy postprzez radoslawd » niedziela, 17 kwietnia 2011, 16:38

Witam wszystkich.

Czy polski znak może być kluczem w mapie STL?

Następujący kod:
KOD cpp:     UKRYJ  
for (int i=1; i<=dlugosc; i++)
      {
         znak = mTekst->Text[i];

         if ((znak >= 97 && znak <= 122)
            || znak == 156 || znak == 159 || znak == 179 || znak == 185
            || znak == 191 || znak == 230 || znak == 234 || znak == 241
            || znak == 243)
         {
            map<char, int>::iterator it = alfabet.find(znak);
            if (it != alfabet.end())
               alfabet[znak]++;
            else
               alfabet[znak] = 1;

            ilosc_liter++;
         }
      }

dodaje mi do mapy pary tylko z literami a-z bez polskich znaków jako klucze.

Czy to oznacza, że niemożliwe jest, aby polskie ogonki były kluczami? Mógłbym niby zrobić pary <int, int> i jako klucz dawać wartość dziesiętną liter, ale myślałem, że to nie będzie potrzebne.
Avatar użytkownika
radoslawd
Bladawiec
Bladawiec
 
Posty: 11
Dołączył(a): poniedziałek, 20 kwietnia 2009, 13:08
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Microsoft Windows 7
Kompilator: Borland Developer Studio 2006
Gadu Gadu: 0
    Windows 7Chrome

Re: Polskie znaki jako klucze mapy STL

Nowy postprzez radoslawd » niedziela, 17 kwietnia 2011, 20:10

Dobra, doszedłem już w czym problem. :)

Jak przelecimy sobie pętlą po 256 intach i zrzutujemy je na char wyświetlając znaki, to owszem, polskie znaki będą miały kody takie, jak w moim powyższym poście. Okazało się jednak, że jak weźmiemy powiedzmy char 'ą' i zrzutujemy na inta, to wcale nie otrzymamy 185, a... -71. :]
Tu był pies pogrzebany. Problem rozwiązany. 8-)
Avatar użytkownika
radoslawd
Bladawiec
Bladawiec
 
Posty: 11
Dołączył(a): poniedziałek, 20 kwietnia 2009, 13:08
Podziękował : 0
Otrzymał podziękowań: 0
System operacyjny: Microsoft Windows 7
Kompilator: Borland Developer Studio 2006
Gadu Gadu: 0
    Windows 7Chrome

Re: Polskie znaki jako klucze mapy STL

Nowy postprzez polymorphism » niedziela, 17 kwietnia 2011, 21:47

KOD cpp:     UKRYJ  
map<char, int>::iterator it = alfabet.find(znak);
if (it != alfabet.end())
        alfabet[znak]++;
else
        alfabet[znak] = 1;
 

Zamiast szukać dwa razy tego samego, daj po prostu:
KOD cpp:     UKRYJ  
alfabet[znak]++;
C++ Reference - opis wszystkich klas STL-a i funkcji C.
Avatar użytkownika
polymorphism
Doświadczony Programista ● Moderator
Doświadczony Programista ● Moderator
 
Posty: 2156
Dołączył(a): piątek, 19 grudnia 2008, 13:04
Podziękował : 0
Otrzymał podziękowań: 200
System operacyjny: Windows 8.1
Windows 10
Linux Mint 21.1
Kompilator: Visual Studio
Visual Studio Code
MSYS2 (MinGW, clang)
g++
clang
Gadu Gadu: 0
    Windows XPFirefox


  • Podobne tematy
    Odpowiedzi
    Wyświetlone
    Ostatni post

Powrót do Ogólne problemy z programowaniem

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zalogowanych użytkowników i 21 gości