bestimmte Werte aus string auslesen

pepsi_gx

Erfahrenes Mitglied
Hallo,

vermute, so einen String "char* string" mit folgendem Inhalt habe ich:

C++:
x   =   1
y   =   2
z   =   3

mit einer Suchfunktion möchte ich die jeweiligen Zahlen auslesen. Daher habe ich folgendes geschrieben:
C++:
	char *pdest;
	int  result;
	
	printf( "String to be searched:\n   %s\n", string);
	pdest = strstr( string, "x");
	result = (int)(pdest - string + 1);
	if ( pdest != NULL )
		printf( "%s found at position %d\n", Tag, result);
	else
		printf( "%s not found\n", Tag);

Die Funktion liefert die Position von "x" zurück, was soll ich weitermachen, um die Zahl hinter "x =" auszulesen?

LG
 
Hi.

Warum willst du das so kompliziert machen?

C:
int x, y, z;
if (sscanf(string, "x = %d y = %d z = %d", &x, &y, &z) == 3) {
  ...
}
In C++ würde man die IOStreams verwenden.

Gruß
 
Warum willst du das so kompliziert machen?

Weil der Inhalt von string ist kompliziert, z.B.
C++:
x   = 1 k
y   = 2 k
z   = 3 k

Und ich bin nicht sicher, ob die Leerzeichen zwischen z.B "x" und "=" auch ne Rolle spielt, weil die Anzahl davon kann variabel sein.

In C++ würde man die IOStreams verwenden.

Genau das ist der Ursprung von string. D.h., string bekommt Inhalt von einer Datei.

Dein Code ist schon ein guter Ansatz für mich, danke!
 
Zurück