Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Strings Case Insensitiv suchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
15.04.2004, 22:40 Uhr
Holger1976



Hat jemand eine Ahnung wie ich in einem String suchen kann, ohne das die Groß und Kleinschreibung beachtetet wird, ohne das sich dafür gleich regex benutzen muss?
Beispiel:

Ich suche nach Apfel, und wenn es im String aPfEl geschrieben wird, finde ich es trotzdem.
Wie geht das?
Ciao,
Holger
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
16.04.2004, 02:21 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


schau mal in den header ctype.h da findest du sämtliche funktionen dieser art die du brauchst... in dem konkreten fall jetzt sollten die tolower,toupper islower und isupper weiterhelfen...


C++:
text2lower(char* s){for(;*s;++s)*s=tolower(*s);}


wenn du das hier über beides rüberjagst... also das zu suchende wort und über den zu suchenden text solltest du das von dir gewünschte finden...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 16.04.2004 um 02:27 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
16.04.2004, 09:51 Uhr
(un)wissender
Niveauwart


Wobei das nicht komplett case insensitiv ist, kompliziert wird es bei SS, ß. Da kommt plötzlich ein Buchstabe hinzu, der Tot für jedes strcmp...
Da hilft nur locales verwenden + eigenes darauf angepasstes strcmp.
--
Wer früher stirbt ist länger tot.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
16.04.2004, 10:02 Uhr
virtual
Sexiest Bit alive
(Operator)


Wenn vorgefertigt, nicht ANSI:
Unter Linux (genauer: BSD4.4): strcasecmp
Unter WIndows: stricmp

Wenn ANSI, dann selberstricken, wie Windalf, allerdings das setlocale davor nicht vergessen
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
16.04.2004, 12:33 Uhr
mike
Pinguinhüpfer
(Operator)


@virtual: was macht das setlocal genau? Ich hab gelesen, wenn man "" übergibt wird der Compilier resettet oder so. Aber warum macht man das?

mfg
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
16.04.2004, 13:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Ein Fast-Lob von virtual.... Das baut mich jetzt unheimlich auf...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
16.04.2004, 14:21 Uhr
virtual
Sexiest Bit alive
(Operator)


@mike

C++:
setlocale("C");


setzt das auf default zurück, mit dem leerstring weiß ich nicht, würde mal vermuten daß das einen Erweiterung wäre...
setlocale lädt in das Program die Locale Einstellungen, so daß sortierreihenfolgen, diese ganzen isalpha sachen (siehe header ctype.h bzw. cctype) lokalisiert funktionieren. Wenn man lokale nicht findet, muß man eben ein default locale haben, eben mit dem Namen "C".
Das hat aber nichts mit dem compiler zu tun, steht ja im QUelltext und wird also zur Laufzeit ausgewertet.

@Windalf
Naja, ich könnte auch motzen... :

1. Die funktion von dir hat eine fehlerhafte Signatur
2. Die Formatierung ist unter aller sau
(3. Die Funktion ist nicht sicher.)

C++:
[b]void[/b] text2lower([b]const[/b] char* s)
{
    [b]if(s)
    {[/b]
        for(;*s;++s)
        [b]{[/b]
            *s=tolower(*s);
        [b]}[/b]
    [b]}[/b]
}



Aber okay, wir wollen mal nicht so sein und nichts gesagt haben...
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
16.04.2004, 14:43 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


zu 1) nix fehlerhaft const geht so nicht
zu 2)was für ne Formatierung? (was es nicht gibt kann auch nicht schlecht sein )
zu3) hab ich nie behauptet und war auch nicht gefordert...

Your Turn
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 16.04.2004 um 14:46 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
16.04.2004, 14:58 Uhr
virtual
Sexiest Bit alive
(Operator)


1. Sorry, das mit dem const ist natürlich Quark. Aber einen Rückgabewert solltest schon spendieren. Und jetzt sag nicht, daß ein total veralteter C Standard das erlaubt: der ist überholt!

2. Laß es uns so sagen: Fehlende Formatierung == Schlechte Codequaliät.

3. Das Zitat "Selbststricken, wie Windalf" sollte dich nicht lauben lassen, daß ich der Meinung wäre, der von dir dahingesaute Code wäre gut. Ich glaube auch nicht, daß er dir angemessen ist.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
16.04.2004, 15:04 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


zu 1)Amen
zu 2)also wenn ich einen Einzeiler in dieser Art und Weise schreibe pack ich den halt auch immer in eine Zeile... das ist immer noch übersichtlich weil das teil ja fast nix macht, für trivialität muss ich doch keine grossen Quelltextformatierungen machen die mir nur den bildschirm zumüllen, weil kaum was raufpasst...
zu3) Ich fass das mal wieder als Lob auf

Ich muss heute eine gute Tat begangen haben, kann mich aber gar nicht mehr erinnern was das war...
--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 16.04.2004 um 15:04 Uhr von Windalf editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: