Char zahlenfolge in float umschreiben

hitera55

Grünschnabel
Hallo ich habe folgendes Problem ich soll aus folgendem array,
char zahlenliste[]="9,8 2,8 3,4 2,7 0,3";

die erste zahl , also 9,8 in eine float zahl umschreiben ich habs über die ascII tabelle versucht scheitere leider an der überschreibung so wie dem floating point , wäre über jede Hilfe glücklich !
 

Technipion

Erfahrenes Mitglied
Hallo hitera55,
ich nehme an du willst das in klassischem C machen?

Guckst du hier:
http://www.cplusplus.com/reference/cstring/strtok/
http://www.cplusplus.com/reference/cstdlib/atof/

Mit den Funktionen kannst du zunächst deinen string zerteilen und dann jede Zahl in ein float umwandeln.

Gruß Technipion

EDIT: Ups, gerade gesehen, dass du noch Probleme mit dem Trennzeichen (,) hast. Das kannst du einfach lösen, indem du als ersten Schritt alle Kommas mit Punkten ersetzt. Einfach googeln, da findest du 100%ig was...
 

hitera55

Grünschnabel
ja genau du hast mir schonmal sehr geholfen demnächst muss ich folgendes tun :
Definieren Sie eine Funktion wandle_in_Zahl, der Sie eine Zeichenkette str übergeben können! Die Funktion wandle_in_Zahl soll die erste Dezimalzahl, die in der Zeichenkette str enthalten ist, erkennen, und in einer float-Variablen zurückgeben. Die umzuwandelnden Zahlen sollen genau eine Stelle vor dem Komma und maximal 3 Stellen hinter dem Komma haben können. Liegt eine solche Zahl nicht vor, soll die Funktion wandle_in_Zahl den Wert -1 zurückgeben.

ich hatte mir dazu folgende dezimalzahl bedingung überlegt
if((a>47 && a<58) && (a[i+1]=='.')&&(a[i+2]>47 && a[i+2]<58))

andernfalls soll die -1 zurück gegeben werden . funktioniert allerdings nicht , hat da jemand bessere vorschläge?