[C] Sprawdzenie czy są polskie znaki
Ostatnio zmodyfikowano 2015-01-08 19:55
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ć? |
|
DejaVu |
» 2015-01-08 19:55:09 W zasadzie polskie znaki w konsoli to śliska sprawa. Poczytaj: http://cpp0x.pl/forum/temat/?id=282Najbardziej 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: #include <iostream> #include <string>
bool czyPolskaLitera( wchar_t _znak ) { switch( _znak ) { case L'ą': return true; default: return false; } }
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. |
|
« 1 » |