Hilfe string verkürzen
-
#include <stdio.h> #include <stdlib.h> #include <string.h> void chop(char *str) { size_t len = str ? strlen(str) : 0; if(len > 0) str[len - 1] = 0; } // chop int main() { char *str = "hallo"; printf("%d\n", strlen(str)); chop(str); printf("%d\n", strlen(str)); system("pause"); return 0; } // main
Warum geht das nicht? Bekomme eine Fehlermeldung unter Windows.
-
"hallo" stellt ein String-Literal da, dass ist nicht veränderbar. Versuchs so:
char str [10]; strcpy(str,"hallo"); chop(str);
MfG SideWinder
-
Danke.
Ist
char *str = "hallo"
dann in einem nicht beschreibaren speicherbereich (text / global) oder so ?
mfg
rifkin
-
Ja, genau. Welches Segment genau ist mir jetzt aber nicht bekannt :(.
Tip: Deswegen bei String-Literalen immer const-Zeiger
MfG SideWinder