String zerlegen
-
strchr und strtok sind deine Freunde
-
char *zeiger token (char *string, char token) {
Was ist das fürne Konstruktion?
-
Hoppla in der Eile passiert, hab es korrigiert.
-
SirLant schrieb:
char bug[2048];
Das ist doch auch mal ein netter Freudscher Vertipper, oder?
-
SirLant:
du weisst schon, dass deine Funktion undefiniertesVerhalten provoziert, oder?
-
Darüber hab ich mir keine Gedanken gemacht, wo tritt dieses Verhalten denn auf?
-
SirLant schrieb:
Darüber hab ich mir keine Gedanken gemacht, wo tritt dieses Verhalten denn auf?
du returnst eine lokale Variable by reference. -> buf
wenn jetzt jemand
char* p=token(...);
schreibt, zeigt p auf toten Speicher.Deswegen auch der Kommentar von fubar mit dem 'freudschen Versprechen' (was ich uebrigens wirklich zum totlachen fand)
-
Sorry das wusste ich nicht, bin bis eben davon ausgegangen, dass dieser Speicher
dann erhalten bleibt so lange er nocht benutzt wird.Edit:
Jetzt weiß ich wie ich da drauf gekommen bin, das ist in Perl so, wenn ich über
die Darstellung und handhabung im Speicher nachdenke ist es auch irgendwie klar,
dass das nicht geht.
-
Normalerweise kommt auch ne Warnung vom Compiler.
-
char str[] = "870960741$Freiberger Bank"; char* your_str = strchr(str, '$') + 1; printf(your_str);