Thread Punkt nach jedem 3. Zeichen (Tausendertrenner bei Zahlen)
(6 answers)
Opened by Faby at 2010-10-08 10:51
Warum nicht einfach eine Funktion schreiben. Muß man doch oft in C.
Bin nun kein C-Profi, aber hier mal ein Vorschlag: Code (c): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 #include <stdio.h> #include <stdlib.h> #include <string.h> char *eur(double a); int main() { double a; char *b; a = 1234567.891011; b = eur(a); printf ("%s\n", b); return 0; } char *eur (double a) { int i; int l; int x; char *b; char *c; b = malloc(30); c = malloc(40); sprintf(b, "%.2f", a); l = strlen(b); x = 0; c += 40; *c = '\0'; for (i = l - 1; i >= 0; i--) { b += i; if (*b == '.') { *b = ','; } if (i < l - 3) { if (x % 3 == 0 && i < l - 4) { c--; *c = '.'; } x++; } c--; *c = *b; b -= i; } free(b); return c; } Puh, C ist immer so anstrengend ... Gruß |