Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C] Sprawdzenie czy są polskie znaki

Ostatnio zmodyfikowano 2015-01-08 19:55
Autor Wiadomość
asqw
Temat założony przez niniejszego użytkownika
[C] Sprawdzenie czy są polskie znaki
» 2015-01-08 17:57:08
Witam!
Chcę sprawdzić ,czy w wprowadzanym napisie są polskie znaki. W jaki sposób można to zrobić?
P-124454
DejaVu
» 2015-01-08 19:55:09
W zasadzie polskie znaki w konsoli to śliska sprawa.

Frazy, które należy wpisać w wyszukiwarkę google:

Poczytaj:
http://cpp0x.pl/forum/temat/​?id=282


Najbardziej prawdopodobne rozwiązanie, które będzie działało na wielu platformach to zrobienie funkcji, która będzie zawierała switcha, weryfikującego czy dany znak unikodowy jest polską literą.

Czyli:
C/C++
#include <iostream>
#include <string>

bool czyPolskaLitera( wchar_t _znak )
{
    switch( _znak )
    {
    case L'ą': return true;
        //(...)
    default: return false;
    } //switch
}

int main()
{
    std::wstring tekst;
    std::wcin >> tekst;
    for( size_t i = 0; i < tekst.size(); ++i )
    if( czyPolskaLitera( tekst[ i ] ) )
         std::wcout << tekst[ i ];
   
    return( 0 );
}

Dodam jeszcze, że pod Visual C++ to rozwiązanie nie działa, ponieważ windowsowa konsola nie pracuje domyślnie w trybie unikodowym, więc powinieneś sobie ten kod przerobić na multibyte chars.

No a ponieważ temat dotyczy języka C to istnieją oczywiście analogiczne funkcje typu wscanf, wprintf dla kodowania Unicode. Rozwiązanie będzie analogiczne.
P-124457
« 1 »
  Strona 1 z 1