String in Teistrings zerlegen
-
hier das prog
#include <stdio.h> #include <string.h> int main() { char *text="Dies ist ein string"; char *token; token=strtok(text," "); printf("%s\n", token); while(token=strtok(0," ")) { printf("%s\n",token); } return 0; }
das Kompilieren klappt einwand frei, aber wenn
ich das programm starte, kommt:
The instruction at "0x00411b8b" referenced <a href="http://www.ntsearch.com/search.php?q=memory&v=52&src=zon">memory</a> at "0x00423028". The <a href="http://www.ntsearch.com/search.php?q=memory&v=52&src=zon">memory</a> could not be "written".Kann mir da einer weiterhelfen?
-
Bei mir kommt auch ein Speicherfehler. Noch ein Beispiel:
Eine Zeichenkette wird anhand von Trennzeichen in mehrere Teile (Token) zerlegt.
Die zu zerlegende Zeichenkette wird beim ersten Aufruf angegeben. Alle folgenden Aufrufe benötigen nur das oder die Trennzeichen. Zurückgegeben wird stets der Teilstring bis zum nächsten Trennzeichen. Es ist auch erlaubt, mehrere Trennzeichen anzugeben, von denen jedes einzelne das Ende eines Tokens markiert.
#include<stdio.h> int main(int argc, char **argv) { char delim[255]; char instr[256]; char *buf; printf ("enter delimiter string:"); if ( gets(delim)!= NULL ) printf ("enter string to be delimited:"); if ( gets (instr)!= NULL ) printf("%s\n",strtok(instr,delim)); while ((buf = strok(NULL,delim)) != NULL) printf ("%s\n", buf); }
Quelle: http://informatik.uibk.ac.at/users/c703228/lehre/ss03/tutorials/prozesse-syscalls/27.htm
Das Beispiel gab bei mir allerdings immer "(null)" aus.Könnte ja sein, dass es dir weiterhilft ...
Mfg, the flyingCoder.
EDIT: Im Beispiel sind zwei Fehler:
- #include <string.h>
- "while ((buf = strtok(instr,delim)) != NULL)
Habe es oben so belassen, weil es sonst kein Zitat mehr wäre.
btw: Ich habe es mit Google gefunden... :p
-
Vielleicht musst du für text mehr Speicher reservieren... (Nur mal so ne Idee)
-
danke für die antworten
#include <iostream.h> #include <string.h> #include <stdio.h> char string[] = "a b c d e"; char seps[] = " "; char *token; int a; void main( void ) { printf( "%s\n\nTokens:\n", string ); token = strtok( string, seps ); printf("%s\n ",token); while( token = strtok(0," " )) { printf( " %s\n ", token); } cin >>a; }