Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 14:09:16 Předmět: Řazení stringů podle abecedy |
|
|
Čau, existuje nejaka funkce na seřazení stringů podle abecedy? Jako vim že je std::sort() a podobně, ale ty neuměj řadit s diakritikou. Řetězce začínající ne písmeno s diakritikou dávaj až nakonec abecedy. Stejně špatne funguje i operator porovnání u stringu nebo string::compare(). Pokud porovnám dva chary tak ty fungujou v poho, ale ty to porovnanvaj podle ASCII takze to je jasný, ale ty stringy to maj asi špatně implementovaný, či co. No jen mě zajímá jestli to mužu udělat nějak jednoduše, nebo si budu muset napsat nějakou vlastní fci? Dík Uiii _________________ Twitter |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. březen 2009, 14:30:19 Předmět: |
|
|
co si napsat vlastni comparer? - ale jinak pokud to delas podle ASCII tak to musi byt uplne stejne blbe - protoze proste hacky/carky jsou daleko za normalnima pismenama - takze neco delas blbe |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 14:38:53 Předmět: |
|
|
rezna napsal: |
ale jinak pokud to delas podle ASCII tak to musi byt uplne stejne blbe - protoze proste hacky/carky jsou daleko za normalnima pismenama - takze neco delas blbe |
No jo vlastně, tak to teda nechápu. To porovnávání charů ale funguje, takže to musí řadit nejak chytře. Ale nevim teda proc nejede to porovnaní stringů, když to určitě musí porovnávat po písmenech a tedy podovánat chary. No asi si budu muset napsat tu vlastni fci. _________________ Twitter |
|
Návrat nahoru |
|
 |
Yossarian

Založen: 28. 07. 2007 Příspěvky: 274 Bydliště: Šalingrad
|
Zaslal: 12. březen 2009, 15:34:30 Předmět: |
|
|
strcoll() . umi brat v potaz locales. |
|
Návrat nahoru |
|
 |
Peta

Založen: 28. 07. 2007 Příspěvky: 154 Bydliště: V prvnim patre hned vedle koupelny.
|
Zaslal: 12. březen 2009, 15:57:36 Předmět: |
|
|
Při řazení znaků/textu je vždy nutné vědět, jestli tě zajímají čistě kódy jednotlivých znaků, nebo (jak připoměl Yossarian) chceš řadit podle abecedy. Na první pohled je to podobné, ale ve skutečnosti se to dost liší - záleží na jazyce (přesněji řečeno na lokálu, každý jazyk totiž může mít lokálů více (viz mutace němčiny pro rakousko, německo atd.)). Každý lokál má určené pořadí znaků (v LC_COLLATE) díky čemuž můžeš pomocí strcoll() ( http://www.cplusplus.com/reference/clibrary/cstring/strcoll.html ) řadit řetězce dle abecedy a to i pro libovolný nainstalovaný lokál aspoň myslím. _________________ Když je Ti smutno, otoč se tváří ke slunci a všechny stíny padnou za Tebe. |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 16:05:13 Předmět: |
|
|
To vypada zajimave ta fce strcoll. A bude tohle funguvat i na windows? _________________ Twitter |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. březen 2009, 16:06:40 Předmět: |
|
|
uiii napsal: |
To vypada zajimave ta fce strcoll. A bude tohle funguvat i na windows? |
na windows ti sere bilej tesak  |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 16:22:49 Předmět: |
|
|
rezna napsal: |
na windows ti sere bilej tesak  |
Jeziš, klid já sem taky zastánce linuxu , ale chtel bych vyvíjet multiplatformě. _________________ Twitter |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 16:34:36 Předmět: |
|
|
uiii napsal: |
rezna napsal: |
na windows ti sere bilej tesak  |
Jeziš, klid já sem taky zastánce linuxu  |
I když teď mě napadá, aby sem tu nerozpoutal nakej flame. To cos napsal nemusí znamenat, že si zastánce linuxu, ale může to být cokoli jinyho. Takže se dyžtak omlouvám. _________________ Twitter |
|
Návrat nahoru |
|
 |
Tringi

Založen: 28. 07. 2007 Příspěvky: 290
|
Zaslal: 12. březen 2009, 16:59:27 Předmět: |
|
|
Co vím, tak pod MinGW (Dev-C++ atp) funguje pouze klasické "C" locale, takže strcoll pro češtinu fungovat nebude. MSVC by to "cs_CZ" umět mohlo, ale kdo ví ve které verzi.
Ale můžeš použít přímo funkci Windows API CompareString (#ifdef _WIN32 chceš-li). _________________ WWW | GitHub | TW |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 17:04:28 Předmět: |
|
|
Tringi napsal: |
Ale můžeš použít přímo funkci Windows API CompareString (#ifdef _WIN32 chceš-li). |
No tak jako dalo by se, ale nechce se mi do toho moc patlat jiny gui. Když už jsme u toho nemá náhodou gtk (lépe gtkmm) nějakou takovou fci? _________________ Twitter |
|
Návrat nahoru |
|
 |
rezna
Založen: 27. 07. 2007 Příspěvky: 2156
|
Zaslal: 12. březen 2009, 17:11:01 Předmět: |
|
|
uiii napsal: |
Tringi napsal: |
Ale můžeš použít přímo funkci Windows API CompareString (#ifdef _WIN32 chceš-li). |
No tak jako dalo by se, ale nechce se mi do toho moc patlat jiny gui. Když už jsme u toho nemá náhodou gtk (lépe gtkmm) nějakou takovou fci? |
jak jiny GUI? - WinAPI neni o GUI - to je proste komplet API windows |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 17:21:58 Předmět: |
|
|
rezna napsal: |
jak jiny GUI? - WinAPI neni o GUI - to je proste komplet API windows |
Ok, aspon mi to je uz jasny.  _________________ Twitter |
|
Návrat nahoru |
|
 |
pcmaster

Založen: 28. 07. 2007 Příspěvky: 1827
|
Zaslal: 12. březen 2009, 17:45:36 Předmět: |
|
|
Urcite???
UI - User Interface
GUI - Graphical User Interface
API - Application Programming Interface
A teraz?  _________________ Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est. |
|
Návrat nahoru |
|
 |
uiii
Založen: 12. 08. 2007 Příspěvky: 251
|
Zaslal: 12. březen 2009, 18:23:35 Předmět: |
|
|
pcmaster napsal: |
Urcite???
UI - User Interface
GUI - Graphical User Interface
API - Application Programming Interface
A teraz?  |
Relativne jo Este by se mohlo doplnit ABI - Application Binary Interface _________________ Twitter |
|
Návrat nahoru |
|
 |
|