Porównywanie napisów uwzględniając polskie znaki
Ostatnio zmodyfikowano 2019-01-13 13:52
artblow Temat założony przez niniejszego użytkownika |
Porównywanie napisów uwzględniając polskie znaki » 2019-01-12 20:19:03 Witam serdecznie, otóż mam problem. Potrzebuje funkcji, która będzie wstanie porównywać dwa stringi/tablice char zależy jak będzie łatwiej. Otóż problem jest taki że słowa zawierają polskie znaki typu ć,ź,ż ale i też duże znaki Ś,Ż,Ć i resztę alfabetu również duże i małe znaki np porównuje: Buty i ćma. Nie wiem jak to ująć w jednej funkcji albo może istnieje już taka, która uwzględnia polskie znaki i traktuje duże jak małe. Dziękuję serdecznie za pomoc |
|
jankowalski25 |
» 2019-01-12 20:57:29 Jeśli problem stanowią tylko polskie znaki, to można po prostu zamienić wszystkie duże litery na małe (albo na odwrót, byleby wszystkie litery były tylko duże albo tylko małe), a dalej użyć klasycznego porównania (w przypadku std::string wystarczy str1 == str2 ). |
|
artblow Temat założony przez niniejszego użytkownika |
» 2019-01-13 13:01:28 Zamienienie dużych znaków na małe to nie problem ale jak się popatrzy na Kod ASCII to ś jest na 152 miejscu a s na 115 wiec trochę nie wyjdzie żeby napisy zostały ułożone w kolejności alfabetycznej. Aktualnie używałam funkcji stricmp ale ona nie uwzględnia właśnie polskich znaków i szukam właśnie czegoś żeby ją zastąpić |
|
pekfos |
» 2019-01-13 13:52:41 #include <iostream> #include <cstring>
int main() { setlocale( LC_ALL, "" ); std::cout << strcoll( "a", "ą" ) << '\n'; std::cout << strcoll( "ą", "b" ) << '\n'; } -1 -1 |
|
« 1 » |