Zeichenlänge eines Strings (Unicodestrings) ermitteln
-
Hallo wie kann ich die Länge eines Strings ermitteln
Versucht hab ich:this->path.Length()
-
Hallo
ja, und?
bis bald
akari
-
Na das funzt nicht, weil es null liefert, obwohl garantiert was drinn steht. Brauch aber unbedingt die Länger des Strings, weil ich das letzte Zeichen kennen muss!
-
Hallo
Dann machst du etwas falsch, was du hier im Forum nicht beschrieben hast. Lenght jedenfalls ist genau die richtige Methode dafür.
bis bald
akari
-
Ok hab den Fehler gefunden.
Ich muss die länge vorher in einer Integer Var speichern und kann sie nicht sofort als ArrayIndex nutzen.
Der Grund, warum ich das eigentlich wissen wollte, war, dass ich prüfen muss ob das Letzte Zeichen dieses Strings ein \ bzw \\ ist
Folgender code sagt nein, obwohl ein \ am ende des strings vorhanden ist:int length = this->path.Length(); if(this->path[length -1] == (wchar_t)"/" || this->path[length-1] == (wchar_t)"\\") { return true; }else { return false; }
-
Hallo
Deine Konvertierung des Char-Literals ist falsch.
Richtig ist es so :this->path[length -1] == L'/'
bis bald
akari
-
int length = this->path.Length(); if(this->path[length -1] == L"/" || this->path[length-1] == L"\\") { return true; }else { return false; }
Da sagt er mir
Konvertierung vin 'wchar_t' nach 'const wchar_t *' nciht möglich
-
Hallo
Deine Konvertierung des Char-Literals ist falsch.
Richtig ist es so :this->path[length -1] == L'/'
bis bald
akari
-
Ach Mist, hab übersehen das man ' statt " nehmen muss.
Jetzt geht es zwar, aber ich muss immer C:\\ eigeben um ein true zu bekommen. Ziel war es jedoch C:\ eingeben zu können...
-
Hallo
Da path ein (Ansi/Unicode-)String ist, beginnt die Zählung der Zeichen bei 1 und nicht bei 0. Deshalb erwischt du das letzte Zeichen nicht bei Length -1, sondern bei Length. Das ist ein grober Unterschied zu der normalen Arrayindizierung von C++ und stammt aus dem Delphi-Erbe.
bis bald
akari
-
Danke dir, jetzt funktioniert es.
Finde es aber inkonsequent, dass man manchmal bei null anfängt zu zählen und dann plötzlich wieder nicht