String zwischen () per sscanf auslesen
-
Hallo zusammen,
ich möchte einen String der zwischen zwei Klammern ( ) steht per sscanf auslesen.
Leider klappt es nicht und ich bekomme als Returnwert immer 0 zugewiesene Attribute.Beispiel:
char *input = "Beispieltext(Neuwagen)"; int ret; char inhalt[ 100 ]; ret = sscanf( input, "*(%s)", inhalt ); //ich habe auch dieses versucht: ret = sscanf( input, "%[()]", inhalt );
Ich bekomme also den doofen Formatstring nicht so wirklich hin. Wie muss er aussehen?
-
Guck mal hier: http://stackoverflow.com/questions/9941962/how-can-i-use-sscanf-to-read-a-string-between-brackets
-
Grübel schrieb:
Ich bekomme also den doofen Formatstring nicht so wirklich hin. Wie muss er aussehen?
"%*[^(](%[^)])"
1. alles was keine '(' ist verwerfen "%*[^(]" 2. Eine '(' konsumieren "(" 3. Alles was keine ')' ist speichern "%[^)]" 4. Eine ')' konsumieren ")"
-
@Furble Wurble: Vielen Dank, auch für die ausführliche Erklärung