stringlänge ermitteln
-
edit (auf die alte gewohnheit hereingefallen+std):
int main() { char* string1="blubb"; size_t n1 = std::strlen(string1); std::string string2("blubb"); size_t n2 = string2.size(); return 0; }
-
Wie Cpt. Tanga schon gesagt hat gibt es die strlen Funktion der Standardbibliothek. Du kannst aber auch die Win-Api Funktion lstrlenA(Für char) benutzen. Oder du schreibst sie dir selbst...
z.B.:
inline int GetStrLength(char* pcString) { int iLength = 0; while(*pcString++ != '\n') { iLength++; } return iLength; }Mfg
0xDEADBEEF
-
while(*pcString++ != '\0')dann stimmts

-
Hups,
stimmt natürlich....
0xDEADBEEF
-
inline int strlen(char* str) { return(static_cast<int>(sizeof(*str)/sizeof(char)-sizeof(char))); }Mfg Shade37337
-
[quote="shade37337"]
inline int strlen(char* str) { return(static_cast<int>(sizeof(*str)/sizeof(char)-sizeof(char))); }komisch das alle Strings dann plötzlich eine Länge von 0 haben

So wird des nix
-
@shade: diese sizeof-Konstruktion funktioniert nur für Arrays (nicht für Zeiger) und liefert außerdem deren Maximalgröße (d.h. "char txt[100]="hallo";" hätte Länge 5 (mit strlen()) und Größe 100 (sizeof())).
-
shade37337 schrieb:
inline int strlen(char* str) { return(static_cast<int>(sizeof(*str)/sizeof(char)-sizeof(char))); }
4 Fehler/Mankos in einer Einzeilerfunktion. Respekt! Du solltest vermutlich deine Kaffeemarke wechseln. 
-
noch eine frage: wie wandel ich einen string in einen array um? ich muss nämlich noch den string bearbeiten?
-
Ein String ist ein char array.
-
das wusste ich schon ;> wie kann ich ihn aber in elemente umwandeln? und wie lautet da die syntax? ach am besten gleich den code.
-
stringols schrieb:
ach am besten gleich den code.
Ja genau, sag einfach mal was du willst und wir programmieren es für dich. Kein Problem, dazu ist ein Forum ja da.
Hier ein Link zu deinem Problem (google --> C++ string, 2. Eintrag) :
http://www.msoe.edu/eecs/ce/courseinfo/stl/string.htm
Ganz unten mal nachsehen und das nächste mal selber suchen (außer wir sollen dir gleich alles schreiben, dann ersparst du dir natürlich das Suchen)