Lowercase
-
Wie kann ich denn auf einfache weisse einen Zeichenkette also ein char* in kleinbuchstaben wandeln
-
Zum Beispiel so:
char s[]="TeST"; for(int i=0;i<sizeof(s);++i) s[i]=tolower(s[i]);
-
Aber Achtung:
In order for tolower to give the expected results, __isascii and isupper must both return nonzero.
http://msdn.microsoft.com/en-us/library/8h19t214(VS.71).aspx
Besser man lässt das CString oder die API machen.
-
Mit CString gehts natürlich ganz einfach: MakeLower (dein char-Array kriegst du per Konstruktor-Aufruf in den CString).
EDIT: Und falls es ums Vergleichen geht, wie hier vermutet wurde, kannst du das sehr komfortabel mit CString::CompareNoCase machen.
-
Die Frage, die sich mir stellt: WARUM willst Du es in Kleinbuchstaben haben? Oft macht dies kein Sinn... willst Du die Strings etwas vergleichen? Dann solltest Du es auf keinen Fall via Kleinbuchstaben machen, sondern die Compare-methoden verwenden, die intern die Sortkeys verwenden...
Es gibt da so ein paar Sprachen, die haben z.B. für ein Zeichen z.B. nur Großbuchstaben und keine kleinen dafür... dann geht das "umwandeln" schief... in .NET wirft dies dann sogar Exceptions... (z.B: Türkisches I)