"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs
Verwijderd
Stroustrup geeft ons de volgende functie (20.3.8 3e editie)
Niet getest, maar ik gok er op dat 't werkt
code:
1
2
3
4
5
6
7
8
9
10
11
12
| int cmp_nocase(const string& s, const string& s2)
{
string::const_iterator p = s.begin();
string::const_iterator p2 = s2.begin();
while (p != s.end() && p != s2.end())
{
if (toupper(*p) != toupper(*p2))
return (toupper(*p) < toupper(*p2)) ? -1 : 1;
++p, ++p2;
}
return s2.size() - s.size();
} |
Niet getest, maar ik gok er op dat 't werkt
Fantastisch! Ook maar eens dat boek kopen..Op maandag 27 mei 2002 00:18 schreef Yarvieh het volgende:
Stroustrup geeft ons de volgende functie (20.3.8 3e editie)
code:
1 2 3 4 5 6 7 8 9 10 11 12int cmp_nocase(const string& s, const string& s2) { string::const_iterator p = s.begin(); string::const_iterator p2 = s2.begin(); while (p != s.end() && p != s2.end()) { if (toupper(*p) != toupper(*p2)) return (toupper(*p) < toupper(*p2)) ? -1 : 1; ++p, ++p2; } return s2.size() - s.size(); }
Niet getest, maar ik gok er op dat 't werkt
"There are 10 kinds of people in the world, those who understand binary and those who don't" | Werkbak specs
Verwijderd
Mwha 't is voornamelijk handig als naslag werk (eigenlijk alleen maar) echt lekker op de bank zitten en er 'n beetje in lezen zit er niet echt in met dat boek..Op maandag 27 mei 2002 00:33 schreef _Mo_ het volgende:
Fantastisch! Ook maar eens dat boek kopen..Bedankt!
Verwijderd
Eigenlijk vind ik het mooier om std::equal te gebruiken met een eigen predicate:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| #include <algorithm>
#include <string>
#include <cctype>
bool lowercaseCompare (int a, int b)
{
return std::tolower(a) == std::tolower(b);
}
int main ()
{
std::string a ("breezer"), b ("BrEeZeR");
if (std::equal(a.begin(), a.end(), b.begin(), lowercaseCompare))
; // equal
} |
Berucht moeilijk, case-insensitive comparison.Op maandag 27 mei 2002 00:14 schreef _Mo_ het volgende:
Hey.. Is het met de STL string class uberhaupt mogelijk om case insensitive comparisons te doen? De compare functie en de overloaded == operator zijn alleen case sensitive, en met google kom ik ook niet echt verder... is het nou helemaal niet mogelijk? Dat zuigt dan best wel...
Mocht iemand weten of het kan, en ook hoe het kan, dan zou ik enige hulp zeer op prijs stellen
Is "ß" (duitse ss) gelijk aan "ss"? Wel als je de conversion in via uppercase doet, niet als je het via lowercase doet. Het correcte antwoord is, "wat bedoel je eigenlijk met case-insenstitive comparison?".
Er is een document dat beschrijft hoe het moet, maar da's 200+ pagina's (dacht ik). Bovendien bestond het nog niet toen C++ standaard werd.
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Moest je niet een eigen locale maken om case insensitive te vergelijken?
Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.
Kwam het wel op neer, want "case-insensitive means what you define it to mean".Op maandag 27 mei 2002 11:19 schreef farlane het volgende:
Moest je niet een eigen locale maken om case insensitive te vergelijken?
Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein
Pagina: 1