Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

gcvt - Gleitkommazahl in Zeichenkette umwandeln

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

char *gcvt(double wert, int anz, char *puf);

gcvt wandelt einen Gleitkommawert wert in eine Zeichenkette aus Ziffern um und speichert die Zeichenkette in dem Bereich, auf den puf zeigt. Als Ergebnis wird ein Zeiger auf diesen Bereich geliefert.

Je nach Aufbau des umzuwandelnden Gleitkommawertes, entspricht das Ausgabeformat

  • dem FORTRAN F-Format: anz signifikante Stellen, keine führenden und nachgestellten
    Nullen von wert, ein ggf. negatives Vorzeichen und Dezimalpunkt (sofern dem Dezimalpunkt
    Ziffern ungleich 0 folgen)

  • oder dem FORTRAN E-Format (Exponential-Schreibweise).

Parameter

double wert

Gleitkommawert, der für die Ausgabe aufbereitet werden soll.

int anz

Anzahl der Ziffern in der Ergebniszeichenkette (gerechnet ab der ersten Ziffer ungleich 0 aus dem umzuwandelnden Gleitkommawert).

Ist anz kleiner als die Ziffernzahl von wert, wird die niedrigste Stelle gerundet.
Ist anz größer, endet die Zeichenkette mit der letzten Ziffer ungleich 0.

char *puf

Zeiger auf die umgewandelte Zeichenkette.
Der Speicherbereich, auf den puf zeigt, sollte mindestens (anz + 4) Bytes groß sein!

Returnwert

Zeiger auf die umgewandelte Zeichenkette.

gcvt schließt die Zeichenkette mit dem Nullbyte (\0) ab.

Hinweise

Falsche Parameter, etwa ein integer- statt double-Wert, führen zum Programmabbruch!

Sie müssen dafür sorgen, dass der Ergebniszeiger puf auf einen Speicherbereich von mindestens (anz + 4) Bytes zeigt (siehe auch Beispiel).

Beispiel

Das Programm liest einen Gleitkommawert x ein, wandelt ihn nach der Angabe in n um und gibt ihn als Zeichenkette in den char-Vektor buf aus. Für die Reservierung von (n + 4) Bytes wird die Funktion malloc benutzt.

#include <stdio.h>
#include <stdlib.h>
int main(void)
{
  double x;
  int n;
  char *buf;
  printf("Bitte Gleitkommazahl eingeben: \n");
  if ( scanf("%lf",&x) == 1)
  {
    printf("Wieviel signifikante Stellen : \n");
    if ( scanf("%d",&n) == 1)
    {
      buf = (char *)malloc(n + 4);
      printf("Die Zahl lautet umgewandelt :  %s \n", gcvt(x, n, buf));
    }
  }
  return 0;
}

Siehe auch  ecvt, gcvt