Hallo,
ich versuche seit einiger Zeit, eine Zahl aus einem Variablennamen zu extrahieren. Es funktioniert ohne Weiteres, wenn ich eine bestimmte Variable innerhalb des Hauptprogramms behandele:
Array erstellen (Könnte auch jede andere Art Variable sein):
Mat_IO_DP array_temp_20; (Ich benutze numerical recipes)
--> Aus dem Variablennamen "array_temp_20" versuche ich z.B., die "20" zu extrahieren.
#define STRING(s) #s
........................................
string matrix_string = STRING(array_temp_20);
string numbers ="0123456789";
int pos1 = matrix_string.find_last_of(numbers);
double last = double((int(matrix_string[pos1]) - 48)); --> gibt mir die "0"
int pos2 = matrix_string.find_last_of(numbers, pos1 - 1);
double penultimate = double((int(matrix_string[pos2]) - 48));
--> gibt mir die "2" usw.
Das funktioniert Alles, problematisch wird es, wenn ich versuche, das Ganze in eine Funktion zu verpacken. Ich würde es dann gern so aus dem Hauptprogramm aufrufen:
double temp = get_temp_from_name(array_temp_20);
mit einem Funktionsprototypen:
double get_temp_from_name(Mat_IO_DP array_name)
Das funktioniert nicht, weil die Funktion dann mit dem Namen "array_name" arbeitet und nicht mit dem Namen "array_temp_20", was ich eigentlich versuche. Und in "array_name" ist ja keine Zahl, so bekomme ich auch nichts zurück. Habt Ihr eine Idee? Herzlichen Dank,
Holger
P.S.: "48" erscheint aus irgendwelchen Gründen als "4" und ein Smilie, lies also
"4Smilie" --> "48"