C macht dumm + Casten

Hallo,

also mich bringt c langsam um den letzten nerv. Anbei zur verdeutlichung was ich machen will:

Code:
#include <stdio.h>

void main() {

	long lon = 452310.0;
	char *ch;
	ch = (char*) lon;

	printf("%s",ch);
}

Ich Will aus diesem bsp. den long wert 452310 in 102345 umwandeln. Zu aller erst müßt ich aber sehen das ich das ganze in ein char* oder char[] bekomm. Oder?

Arbeite zur Zeit an Java-Nativ Projekten. Bzw häng ich da nur an der C umsetzung. Vieleicht weiß jemand rat.

in java wäre es schlicht und einfach mit String str = Long.toString(lon); getan. Danach kann man ja am Algo basteln das die Ausgabe auch richtig stimmt. Aber in C ... warum einfach wenns auch unmöglich ist.
 
Original von minzel
Hallo,

also mich bringt c langsam um den letzten nerv. Anbei zur verdeutlichung was ich machen will:

Code:
#include <stdio.h>

void main() {

	long lon = 452310.0;
	char *ch;
	ch = (char*) lon;

	printf("%s",ch);
}

Ich Will aus diesem bsp. den long wert 452310 in 102345 umwandeln. Zu aller erst müßt ich aber sehen das ich das ganze in ein char* oder char[] bekomm. Oder?

Arbeite zur Zeit an Java-Nativ Projekten. Bzw häng ich da nur an der C umsetzung. Vieleicht weiß jemand rat.

in java wäre es schlicht und einfach mit String str = Long.toString(lon); getan. Danach kann man ja am Algo basteln das die Ausgabe auch richtig stimmt. Aber in C ... warum einfach wenns auch unmöglich ist.

Also wenn ich das jetzt richtig verstanden habe, dann willst du dise Zahl in einen String bekommen oder?
dann zum umwandeln wsprintf(falls du win benutzt) verwenden.
Code:
char* buffer=new char[20];
wsprintf(buffer,"%li",lon);
Sag, wenn ich was falsch verstanden habe.
 
oder die sprintf funktion nutzen, welche bestandteil der standard c library stdio ist.

Code:
#include <stdio.h>

void main() {
	long lon = 452310;
	char longstring[20];
	sprintf(longstring,"%ld",lon);
	printf("%s",longstring);
}
long ist btw keine gleitpunktzahl also lass das ".0" bei der initialisierung weg.
 
Oder du machst es mathematisch, und teilst die Zahl immer (von hoch nach niedrig) durch die Zehnerpotenzen, rundest ab, merkst dir die zahl und machst das ganze wieder mit dem rest, mit der nächstniedrigeren Zehnerpotenz.
 
Zurück
Oben