Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

11

30.03.2011, 16:05

ähm ich glaube nicht, dass es hier funktioniert. bei case('n' | 'N') kommt was ganz anderes raus und es wird nie ausgewählt. oder meinst du das anders?
switch/case ist genau für soetwas gedacht. deshalb ist ja dieses break pflicht.
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

12

30.03.2011, 16:29

Ja kann ich. Ich verwende generell Bit-Manupulation, um Großbuchstaben bzw. Kleinbuchstaben in Kleinbuchstaben umzuwandeln. Das ist viel elegnater...
Hier zum nachschauen: http://c-buch.sommergut.de/Kapitel14/Bit…ulationen.shtml

koschka

Community-Fossil

Beiträge: 2 862

Wohnort: Dresden

Beruf: Student

  • Private Nachricht senden

13

30.03.2011, 16:34

Die Frage in der es in diesem Thread geht ist aber:

Zitat von »"Threadersteller"«

Meine Frage ist es, ob es irgendwie möglich ist in einem Caseblock zwei Möglichkeiten einzubringen... Also Beispielsweise mit dem logischem Operator 'oder' ( || )??


Dies hat nichts mit der Umwandlung zwischen Klein- und Großbuchstaben zu tun.

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

14

30.03.2011, 16:36

Ja kann ich. Ich verwende generell Bit-Manupulation, um Großbuchstaben bzw. Kleinbuchstaben in Kleinbuchstaben umzuwandeln. Das ist viel elegnater...

Dem muss ich widersprechen. Es ist nicht portabel (an einen Zeichensatz gebunden), unleserlich und der so generierte Code wird kaum wesentlich effizienter sein als die Jump-Table die der Compiler im Idealfall aus dem switch erzeugen würde. Außerdem gibts nur für einen Bruchteil aller möglichen Zeichen überhaupt sowas wie eine upper- bzw. lowercase Variante, was passiert bei dir in allen anderen Fällen?

Abgesehen von all dem brauchst du so oder so wieder ein switch(), dann eben nur über Kleinbuchstaben...

Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von »dot« (30.03.2011, 16:45)


15

30.03.2011, 18:11

Hm wenns nur ein Buchstabe ist, ist die Bitmanipulation natürlich viel zu aufwendig. ich habe da aber an das ganze Alphabet gedacht... Wie es mit einem wchar_t aussieht, weiß ich nicht.

TGGC

1x Rätselkönig

Beiträge: 1 799

Beruf: Software Entwickler

  • Private Nachricht senden

16

30.03.2011, 20:28

Ja kann ich. Ich verwende generell Bit-Manupulation, um Großbuchstaben bzw. Kleinbuchstaben in Kleinbuchstaben umzuwandeln. Das ist viel elegnater...
Hier zum nachschauen: http://c-buch.sommergut.de/Kapitel14/Bit…ulationen.shtml
Nein, fuer sowas benutzt man std::tolower und nicht so Frickelkram.

17

31.03.2011, 19:26

Was du Frickelkram nennst ist verstehen, statt benutzen. Was ist daran bitte 'Frickelkram' ?!

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

18

31.03.2011, 19:29

Es funktioniert nur unter bestimmten Voraussetzungen und nicht im allgemeinen Fall, ist schlechter lesbar und bietet abgesehen davon keine wirklichen Vorteile. Warum sollte man das also so machen wenn man einfach std::tolower() benutzen kann?

19

31.03.2011, 19:36

Zu Lesbarkeit: wenn man die Vorteile der strukturierten Programmierung nutz, sollte das mit der Lesbarkeit geklärt sein... Außerdem könnte man diese Funktion ja erweitern, um Zeichensatz und andere Dinge zu berücksichtigen. Ansonsten gilt (aus meiner Sich), dass man eine Sprache besser lernt, wenn man Dinge selbst anpackt, anstatt sich zb an die STD zu 'klammern'. Für alle professionellen Programmierer gilt das natürlich nicht -.-

dot

Supermoderator

Beiträge: 9 757

Wohnort: Graz

  • Private Nachricht senden

20

31.03.2011, 19:39

[...] wenn man die Vorteile der strukturierten Programmierung nutz, sollte das mit der Lesbarkeit geklärt sein... Außerdem könnte man diese Funktion ja erweitern, um Zeichensatz und andere Dinge zu berücksichtigen.[...]

Und jetzt rat mal was std::tolower() macht...

Natürlich ist es eine nette Übung sowas mal selbst zu machen da widersprech ich dir nicht. Aber "eleganter" ist es auf keinen Fall.

Werbeanzeige