CString auf Buchstaben prüfen?
-
Mr Evil schrieb:
ich weiss nicht ob ich mich irre - aber 0 bis 9 ist doch auch 0x00 bis 0x09 {hexwert}
also einfach statt nach den buchstaben nach den hexwert der zahlen suchen if(wert<=0x09) then is zahlkA obs stimmt, nur so ein gedanke
Du irrst dich, das ist Quatsch

-
Das Problem damit ist, dass es halt absolut nicht multilingual ist. D.h. wenn deine Software in Frankreich eingesetzt wird, werden nciht alle Buchstaben gefunden, bei östlichen Sprachen isses noch schlimmer.
-
Einführung in Codepages und Unicode
http://www.c-plusplus.net/forum/viewtopic-var-p-is-1157459.html
=>
isalpha bzw. _istalpha
-
Hallo ihr beiden Moderatoren !
Es kann ja sein, dass ich im meinem Alter schon an Augenschwäche leide, aber von 'multilingual' und 'Uni-Code' stand kein Sterbenswörtchen in Fruggles Anfrage. Ich bin auch ein geduldiger Mensch, wenn aber ein Moderator Kritik anbringt egal ob ein Lösungsansatz oder Gedanke falsch ist bzw. einer der vielen Lösungswege nicht überall auf der Welt einsetzbar ist (obwohl dieser nicht mal weiß, ob die Software überhaupt jemals den USB-Stick geschweige Deutschland verläßt) und dann nicht mal die Güte besitzt eine eigene Lösung zu präsentieren, dann find ich das nicht sehr kameradschaftlich. Die Leute die hier Fragen stellen, wollen Lösungen und meistens in Form eines Codesnippets, dann frag' ich mich, was das mit den 'hingekotzen' C++-Befehlen bedeuten soll. Und kommt mir jetzt ja nicht von wegen "Der Fragende muss ja auch ein bisschen Einsatzwille zeigen, sonst ist der Lerneffekt Null". Und wo ist der Einsatzwille des Moderators ???
Mit besten Grüßen
-
- Wir haben hier die Philosophie den Leuten beizubringen, wie man lernt. Das tut man nciht mit fertigen Codesnippets, sondern indem man nur einen Tip gibt und die Recherche dann den Leuten selbst überlässt. Learning by doing ist effektiver als "Learning by copying"
- Du bist offensichtlich heute mit dem falschen Fuß aufgestanden. Hier ist nichts hingekotzt. Wir haben ihn lediglich auf ein potentielles Problem deiner Lösung aufmerksam gemacht und ihm dann sogar die notwendigen weiterführenden Informationen geliefert.
-> Beruhige dich, so machst du dich lächerlich und unbeliebt.
-
dEUs schrieb:
-> Beruhige dich, so machst du dich lächerlich und unbeliebt.
Du hast Recht. Es ist es nicht Wert sich aufzuregen ! Ich muss halt hier damit leben, oder nicht !
Gruß Ernst
-
Ich muss dann doch nochmal was zu Verteidigung von MacReeg sagen.
Ohne seinen Snippet wäre ich ewig dabei gewesen mir was auszudenken.
Am Ende wäre ich vielleicht mit viel viel Glück über FindOneOf in der
MSDN gestolpert.So hat er mir gezeigt wie ich es sofort anpacken kann (Danke nochmals an
dieser Stelle!).Ich habe mir dann in der MSDN nochmal FindOneOf angesehen und auf diesem
Wege (wie ich finde) schneller und bessers etwas gelernt, als ewig lange
zu suchen und am Ende gefrustet alles über den Haufen zu werfen.Bedenkt bitte, dass nicht jeder hier im Forum ein absoluter C++ Crack
und Überflieger ist. Ich für meinen Teil bin absoluter Anfänger.
Ausgestattet mit einigen Büchern und Tutorials.Hätte man mir nicht gesagt welche Bücher und Tuts gut wären, würde ich
heute nicht weitergekommen sein. Da kann es doch auch nicht lauten:
"Kauf dir ein paar Bücher und guck dann welche du wieder bei Ebay
einstellen kannst".Grüße
Fruggle
-
Ich bin der Meinung, dass du mit dem Hinweis auf CString::FindOneOf fast ebenso schnell zum Ziel gekommen wärst. Obendrauf hättest du gelernt, in der MSDN zu suchen und mit den Informationen die es dort gibt weiterzukommen.
-
dEUs schrieb:
Ich bin der Meinung, dass du mit dem Hinweis auf CString::FindOneOf fast ebenso schnell zum Ziel gekommen wärst.
Abgesehen davon ist es fraglich ob dies die richtige Lösung ist...
-
Jochen Kalmbach schrieb:
dEUs schrieb:
Ich bin der Meinung, dass du mit dem Hinweis auf CString::FindOneOf fast ebenso schnell zum Ziel gekommen wärst.
Abgesehen davon ist es fraglich ob dies die richtige Lösung ist...
Natürlich, davon mal abgesehen
-
dEUs schrieb:
Jochen Kalmbach schrieb:
dEUs schrieb:
Ich bin der Meinung, dass du mit dem Hinweis auf CString::FindOneOf fast ebenso schnell zum Ziel gekommen wärst.
Abgesehen davon ist es fraglich ob dies die richtige Lösung ist...
Natürlich, davon mal abgesehen
Es soll tatsächlich noch Menschen geben die glauben, dass es beim Programmieren nur einen Lösungsweg gibt ! Aber Ausnahmen bestätigen nunmal die Regel.
Gruß Ernst
-
MacReeg schrieb:
Es soll tatsächlich noch Menschen geben die glauben, dass es beim Programmieren nur einen Lösungsweg gibt ! Aber Ausnahmen bestätigen nunmal die Regel.
Der OP hat leider nicht gesagt, was er genau will. Also basieren alle Lösungen nur auf Vermutungen. Du vermutest halt, dass er mit Buchstaben nur unsere (bekannten) Buchstaben meint.
Wenn Du Dich aber etwas mit Unicode auseinandersetzen würdest (z.B. via meinem Artikel hier im Forum), dann wüsstest Du, dass die Welt viel größer ist und es noch viel mehr "Buchstaben" gibt als Du Dir jemals ausdenken kannst.Deswegen geb ich Dir recht: Für ein ungenaues Problem gibt es beliebig viele Lösungen...
Für ein genaues Problem sind die Anzahl der Lösungen doch wesentlich eingeschränkter.
-
Hallo,
wäre da nicht eine einfache Schleife besser dafür?
Ich meine einfach den String durchlaufen und jedes Zeichen prüfen ob dieses
kleiner als 48(die 0) oder grösser als die 58(die 9), dann würde
die Funktion alles was keine Zahl ist finden, auch wenn die Software in Frankreich
eingesetzt wird?grüsse
pixel
-
pixel schrieb:
wäre da nicht eine einfache Schleife besser dafür?
Ich meine einfach den String durchlaufen und jedes Zeichen prüfen ob dieses
kleiner als 48(die 0) oder grösser als die 58(die 9), dann würde
die Funktion alles was keine Zahl ist finden, auch wenn die Software in Frankreich
eingesetzt wird?Das mag vielleicht für ASCII gehen, aber es geht schon nicht mehr für Zeichen > 0x7f! Von Unicode erst gar nicht zu reden!
Lest auch mal den folgenden Artikel durch:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-161855.htmlSo sind z.B. allein in der Kategorie "Kleinbuchastaben" schon über 1634 Zeichen enthalten!
http://www.fileformat.info/info/unicode/category/Ll/index.htm
-
Jochen Kalmbach schrieb:
Lest auch mal den folgenden Artikel durch:
http://www.c-plusplus.net/forum/viewtopic-var-t-is-161855.htmlJa, der Artikel haut einen von den Füßen, wenn man was Zeichensätze angeht noch in der DOS-Welt lebt und denkt.

PS: Und ich finde es gut, dass hier Lösungen auf unterschiedlichen Lernniveaus gepostet werden.
So ist für Anfänger was dabei und für Fortgeschrittene. Und der Anfänger sieht, dass da noch mehr geht, wenn er will.
-
pixel schrieb:
wäre da nicht eine einfache Schleife besser dafür?
Ich meine einfach den String durchlaufen und jedes Zeichen prüfen ob dieses
kleiner als 48(die 0) oder grösser als die 58(die 9), dann würde
die Funktion alles was keine Zahl ist finden, auch wenn die Software in Frankreich
eingesetzt wird?Wie Jochen auch shcon angedeutet hat:
Du (Unicode-)Welt ist so groß, dass man dort mit solchen Hacks einfach nciht mehr arbeiten kann