string in double.........C++

Hallo,
Wie kann ich einen String bzw. mehrere Elemente eines Char Array in eine Double Variable kopieren??

Beispiel:
char ch_Array[10] = "138293751";
double d_myDouble;

Und die Zahl 138293751 soll nun in d_myDouble gespeichert werden.....

ps: die Zahl kann auch noch um einiges länger werden und ich will sie deshalb in eine double-Variable
speichern.
 
Ich weiss nicht genau ob ich die Frage verstanden habe aber :

Anstatt eines Double Wertes würde ich für deine Zahl eine integer Wert nehmen.

Das würde ich so machen :

int int_wert = 0;
char ch_array[10] = 138293751;
int_wert = ch_array[10];

MFG

AKKAD
 
@Akkad...
eine integer Variable haettest Du mit Deiner Version
schon gesprengt::
unsigned int = 0 - 65535
signed int (int) = -32767 - 32767
(bei 32 bit architektur und je nach OS ist das ueblich)
:)

hmm...
also wenn du kurzweilig die aenderung benoetigst koenntest Du das mit "casting" machen...

z.B:
////////////////
int a = 1000;
long b = 1200;
long c;

c = b *(long)a;
////////////////

Ob das mit char geht, musst probieren...

In C gaebe es da die Funktion "atoi", die aber in int
umwandelt....wenn Du ein vorzeichenloses nimmts, hast Du eigentlich auch platz..allerdings nicht fuer solche Zahlen.....

moeglich waeren auch zuweisungen einzelner Arrayelemente an Zahlenvariablen via Formatangaben...

im schlimmsten Fall kannst Du das Array byteweise auslesen und durch Kenntnis des ASCII codes
die eigentliche "Zahl" die Du haben willst zusammenstueckeln...


FAZIT:

nimm gleich eine double Variable...

Es waere nett wenn Du das eigentliche Problem, in Deinem Programm (?) schildern wuerdest...

:)

:wq!
 
Hi @ll

neben der atoi gibt es auch noch atof und atold.
atof liefert unter VC sogar einen double (anstatt nem float) zurück. Und atold, dem Namen treu, halt nen long double.


Alternativ zu den ato...-Funktionen gibt es ja immernoch das alte sscanf :))
Code:
char ch_Array[10] = \"138293751\";
double d_myDouble;

if( sscanf( ch_Array, \"%lf\", &d_myDouble ) != 1 ) 
{ 
     // Fehler aufgetreten 
}

Greetz,
- Mr.Bit
 
Erstmal, danke für die Hilfe. Kann leider keine Integer-Variable gebrauchen(die Zahl wird auf jeden Fall mehrstellig). Die Funktion soll zur Verschlüsselung von Strings(nicht den ganzen Text auf einmal) dienen.

Und hier mein Vorhaben:
String = "76","49","78","85","88" // die ASCII-WERTE des zu verschlüsselten Strings
Schlüssel = 11, 7, 3 // primzahlen

76497885881173 // die Schlüssel-Zahlen werden am String angehängt

76497885881173 * 11 // das ganze mal der ersten primzahl des Schlüssels

ERGEBNIS*7 // das Ergebnis mal der nächsten Primzahl des Schlüssels
ERGEBNIS*3 // -- || --

Ich sollt mir nur noch überlegen wie ich das ganze anstelle ohne die double Variable zu sprengen. Ich werde auf jeden Fall die länge des Strings begrenzen(ob das Ausreicht???).
 
Du musst ja nicht alles unbedingt in eine Variable packen...

Du koenntest ja auch Zahlen array benutzen...

und die ASCII Zahlenwerte an den eigentlichen Textstring anhaengen ist ueberfluessig..denn die ASCII Werte der Zeichen reichen voellig aus...

mit

printf ("%s", 127) ;

gibst die Zahl als Zeichen aus...
Kann auch sein dass ich jetzt an Deinem Gedanken vorbeidenke...

Willst Du einen Verschluesselungstool schreiben ?

:wq!
 
Nein, ein kleines "Adressbuch" mit dem mehrere verschiedene Benutzer arbeiten können und jeder seine Daten geheim halten kann.
Kann nicht das ganze in Zahlenvariablen packen. Hab schon die funktionen für die Strings fertig(Listen, usw.) und das wäre dann äußerst unpraktisch.

Ps: Werd die Schlüsselzahlen nicht anhängen, ist wirklich unnötig.

DANKE, nochmals
 
Noch ne (wahrscheinlich sehr dumme)Frage: wie kann ich am besten alle Buchstaben in deren ASCII-Code(dez) umwandeln??

zB: char myString[] = "aa";

und nach der Umwandlung: myString = "9797";
 
Zurück
Oben