Großschreibung?
-
Das hat nie was mit der Rechtschreibreform zu tun gehabt...
-
optimizer erzähl hier nich so ein schmarn!
Ich weiß es definitiv, ß wird niemals durch ss ersetzt!
Quelle: Vor Jahren mal ein Diktat geschrieben, dachte ich mir nimmst du statt ß ss, ist ja mode, war falsch. Dann hab ich nachgefragt weil das jeder so macht, "das grosse krabbeln" usw. und meine Deutschlehrerin meinte es ist einfach falsch, wahr immer falsch und wird es auch bleiben!
-
Cooler Beweis. Das widerlegt natürlich alles, was die bisherigen Quellen ergeben haben.
-
Schade, dass man Zahlen nicht klein schreiben kann...
-
@oifd: Troll
-
interpreter schrieb:
Ah, und deshalb kann es kein "tolower(const char* str)" geben, oder?
Ich hab zumindest im ganzen Thread keinen gesehen, der ein char *tolower(const char *str) definiert hätte. Und wenn du dich zurück erinnerst, begann die ganze Debatte damit, ob dieser Code hier:
transform(s.begin(), s.end(), s.begin(),toupper);
portabel sei.
-
Irgendwer schrieb:
So ist das aber nicht portabel.
Da seh ich jetzt nicht direkt was daran falsch sein sollte, könntest du etwas genauer sein?
Um mal wieder Scott Meyers zu zitieren (Effective STL - Item 35):
Like many functions in <cctype> (and hence <ctype.h>) tolower's parameter and return value is of type int, but unless that int is EOF, its value must be representable as an unsigned char. In both C and C++, char may or may not be signed (it's up to the implementation), and when char is signed, the only way to ensure that its value is representable as an unsigned char is to cast it to one before calling tolower.
0xdeadbeef schrieb:
Aber auch das lässt sich umgehen, indem man statt std::string std::basic_string<unsigned char> benutzt.
Damit bekommst du auf Platformen mit char = signed char aber wieder ganz neue Probleme. U.A. kannst du einen solchen String weder Einlesen noch Ausgeben. Zumindest solange du nicht eigene Funktionen dafür schreibst. basic_string<unsigned char> und string sind dann schlicht inkompatibel.
-
oxdeadbeef schrieb:
interpreter schrieb:
Ah, und deshalb kann es kein "tolower(const char* str)" geben, oder?
Ich hab zumindest im ganzen Thread keinen gesehen, der ein char *tolower(const char *str) definiert hätte. Und wenn du dich zurück erinnerst, begann die ganze Debatte damit, ob dieser Code hier:
transform(s.begin(), s.end(), s.begin(),toupper);
portabel sei.
Und? Es ging hier um die Logik, nicht um konkreten Code.
-
HumeSikkins schrieb:
Irgendwer schrieb:
So ist das aber nicht portabel.
Da seh ich jetzt nicht direkt was daran falsch sein sollte, könntest du etwas genauer sein?
Um mal wieder Scott Meyers zu zitieren (Effective STL - Item 35):
Like many functions in <cctype> (and hence <ctype.h>) tolower's parameter and return value is of type int, but unless that int is EOF, its value must be representable as an unsigned char. In both C and C++, char may or may not be signed (it's up to the implementation), and when char is signed, the only way to ensure that its value is representable as an unsigned char is to cast it to one before calling tolower.
Das wusste ich nicht. Heist das nun dass wenn char = signed cahr ist, dass dann '§' zum Beispiel negativ sein kann? und beim casten von int auf char kann der Signbit abgeschnitten werden? oder hab ich das jetzt falsch verstanden? Wenn ich was teste krieg ich irgendwie immer das Zeichen bein Casten raus das ich reingestopft habe.
-
Hilft das?