You are not logged in.

  • Login

1

Monday, October 5th 2009, 7:37pm

zahlen formatieren, führende nullen

hey liebes forum.
ich bin auf der suche nach einer c++ funktion, um eine zb. 2 stellige integer zahl (35 zb)
mit 0 aufzufüllen zb bis auf 4 stellen -> 0035 wäre das ergebnis.
es gibt doch sicherlich ne einfachere methode, als die zahl zum string formatieren, dann
zu gucken, wie lang er ist und dann 0 nachzufüllen, oder? :D
vielen dank schon mal

2

Monday, October 5th 2009, 9:45pm

also ich hab null ahnung von c++. das schonmal vorweg. aber ich hab ne ahnung von aufwandsbetrachtungen, o-kalkül und so. und ich kenn mich ein bissl mit datentypen aus. also warum nicht einfach so ne funktion selbst schreiben :)

zur aufgabe ansich: ich überlege gerade ob du ums umwandeln in einen string drumrumkommst, vermutlich könntest du noch ein array initialisieren. dann halt die ersten paar indizes mit null auffüllen. ausserdem frag ich mich wie für dieses problem eine optimale funktion aussehen könnte. also zunächst muss man sicherlich die größe des int-werts feststellen. ich würde dafür eine case-anweisung vorschlagen. das geht relativ effektiv. nachdem du weisst wie groß das ding ist, dann halt entweder umwandlung string oder umwandlung array. glaube du kommst um diese zwei schritte nicht drumrum, auch in einer "optimalen funktion" nicht. lasse mich aber gerne eines besseren belehren. also schritt 1: größe feststellen, schritt 2: nullen anhängen (impliziert umwandlung).

viel spass beim finden des optimums :D

gruß

qualmi

3

Monday, October 5th 2009, 11:30pm

C/C++ Quellcode

1
2
3
4
5
String zeichen=zahl;
int bleibt = 4 - strlen(zeichen);
for (int i=0; i<bleibt; i++){
    zeichen="0" + zeichen
}


sowas in der art? bin schon seit über 2 jahre aus c++ raus, also müsstest du vielleicht anpassen....

4

Tuesday, October 6th 2009, 2:57pm

@qualmi den schritt die länge der zahlen kann ich schon vorher bestimmen, nämlich 3. ich probiers erstmal mit der methode von Koljan777
vielen dank leute :)

5

Tuesday, October 6th 2009, 4:42pm

nur zu. ist ja nichts weltbewegendes und dasselbe hatte ich auch vorgeschlagen. mir geht es nur darum ob du um das konvertieren rumkommst. ich vermute nein, da ein integer wert intern z.b. so aussieht "00000000000000000000000000000011" = 3. da stehen tausend nullen davor, aber die interne schalttechnik macht daraus eh nur ne drei, und keine 0003, verstehst :D von daher musst du das wohl umwandeln....und kannst dafür ruhig koljans verschrumpelten code nehmen :D :D

6

Tuesday, October 6th 2009, 10:41pm

@Qualmi

ja dass Du in Ganzzahl Datentypen keine führende null haben kannst sollte Dir doch klar sein :rolleyes:

7

Thursday, October 8th 2009, 9:07am

mit printf kannst du doch führende 0'en haben

C/C++ Quellcode

1
printf('%05d',1);

8

Thursday, October 8th 2009, 1:06pm

Wenn es C++ werden soll, ist in folgendem vielleicht die eine oder andere Möglichkeit:
http://www.mathematik.uni-muenchen.de/~s…+/ss06/inf3.pdf

durchlesen und testen und viel Spaß

Bcc-Fan

Similar threads

Social bookmarks