localeconv

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Locale.h - Index


Header-Datei

locale.h

Kategorie

Verschiedene Routinen

Prototyp

struct lconv *localeconv(void);

Beschreibung

Ruft das Gebietsschema für das numerische Format ab.

Diese Funktion stellt Informationen über das Währungsformat und andere numerische Formate des aktuellen Gebietsschemas bereit. Diese Informationen werden in einer Struktur vom Typ struct lconv gespeichert. Diese Struktur kann nur mit der Funktion setlocale geändert werden. Durch nachfolgende Aufrufe von localeconv wird die Struktur lconv aktualisiert.

Die Struktur lconv ist in locale.h definiert. Sie enthält folgende Felder:

char *decimal_point;	

Dezimalzeichen, das in numerischen Formaten, mit Ausnahme der Währungsformate, verwendet wird Dieses Feld kann ein leerer String sein.

char *thousands_sep;	

Trennzeichen, das zur Gruppierung der Zahlen links vom Dezimalzeichen verwendet wird. Wird nicht in Währungsangaben verwendet.

char *grouping;

Größe der einzelnen Zahlengruppen. Wird nicht in Währungsangaben verwendet. Siehe Werteliste in nachstehender Tabelle.

char *int_curr_symbol;	

Internationales Währungssymbol im aktuellen Gebietsschema. Das Symbolformat ist im ISO-Standard 4217 "Codes for the Representation of Currency and Funds" festgelegt.

char *currency_symbol;	

Lokales Währungssymbol im aktuellen Gebietsschema.

char *mon_decimal_point;	

Dezimalzeichen, das zur Formatierung von Währungsangaben verwendet wird.

char *mon_thousands_sep;	

Trennzeichen, das in Währungsangaben zur Gruppierung der Zahlen links vom Dezimalzeichen verwendet wird.

char *mon_grouping;

Größe der Zahlengruppen in Währungsangaben. Siehe Werteliste in nachstehender Tabelle.

char *positive_sign;	

String, der nicht negative Währungsangaben kennzeichnet.

char *negative_sign;

String, der negative Währungsangaben kennzeichnet.

char int_frac_digits;

Anzahl von Stellen, die in einer nach internationaler Einstellung formatierten Währungsangabe nach dem Dezimalzeichen angezeigt werden sollen.

char frac_digits;

Anzahl von Stellen, die in einer formatierten Währungsangabe nach dem Dezimalzeichen angezeigt werden sollen.

char p_cs_precedes;	

Wird auf 1 gesetzt, wenn currency_symbol einer nicht negativen, formatierten Währungsangabe voransteht. Wenn currency_symbol nach der Zahl folgt, wird der Wert 0 zugewiesen.

char p_sep_by_space;	

Wird auf 1 gesetzt, wenn currency_symbol von einer nicht negativen, formatierten Währungsangabe durch ein Leerzeichen getrennt werden soll. Wird auf 0 gesetzt, wenn kein trennendes Leerzeichen eingefügt wird.

char n_cs_precedes;

Wird auf 1 gesetzt, wenn currency_symbol einer negativen, formatierten Währungsangabe voransteht. Wenn currency_symbol nach der Zahl folgt, wird der Wert 0 zugewiesen.

char n_sep_by_space;	

Wird auf 1 gesetzt, wenn currency_symbol von einer negativen, formatierten Währungsangabe durch ein Leerzeichen getrennt werden soll. Wird auf 0 gesetzt, wenn kein trennendes Leerzeichen eingefügt wird.

char p_sign_posn;	

Gibt an, an welcher Stelle das Zeichen für positive Zahlen in einer nicht negativen formatierten Währungsangabe eingefügt werden soll.

char n_sign_posn;	

Gibt an, an welcher Stelle das Zeichen für positive Zahlen in einer negativen formatierten Währungsangabe eingefügt werden soll.


Keiner der obigen Strings (außer decimal_point) darf leer " " sein, da er sonst vom aktuellen Gebietsschema nicht unterstützt wird. Bei den Elementen vom Typ char, die keine Strings sind, handelt es sich um nicht negative Zahlen. Wenn ein Element vom Typ char, das kein String ist, den Wert CHAR_MAX enthält, bedeutet dies, dass dieses Element vom aktuellen Gebietsschema nicht unterstützt wird.

Die Elemente grouping und mon_grouping werden wie folgt festgelegt und interpretiert:

CHAR_MAX

Stellen nicht weiter gruppieren.

0

Das vorherige Element soll wiederholt für die übrigen Stellen verwendet werden.

Beliebige, andere Ganzzahl

Gibt an, wie viele Stellen die aktuelle Gruppe umfasst. Das nächste Element wird gelesen, um die Größe der nächsten Gruppe von Zahlen vor der aktuellen Gruppe zu ermitteln.


Die Elemente p_sign_posn und n_sign_posn werden wie folgt festgelegt und interpretiert:

0

Menge und currency_symbol in runde Klammern setzen.

1

Der Vorzeichen-String steht vor Menge und currency_symbol.

2

Der Vorzeichen-String folgt nach Menge und currency_symbol.

3

Der Vorzeichen-String steht unmittelbar vor Menge und currency_symbol.

4

Der Vorzeichen-String folgt unmittelbar nach Menge und currency_symbol.


Rückgabewert

Gibt eine Zeiger auf die ausgefüllte Struktur vom Typ struct lconv zurück. Die Werte in der Struktur ändern sich, sobald die Kategorie LC_MONETARY oder LC_NUMERIC durch setlocale geändert wird.

Beispiel

 #include <locale.h>
 #include <stdio.h>
 int main(void)
 {
    struct lconv ll;
    struct lconv *conv = &ll;
 /* read the locality conversion structure */
    conv = localeconv();
 /* display the structure */
   printf("Decimal Point                 : %s\n", conv-> decimal_point);
   printf("Thousands Separator           : %s\n", conv-> thousands_sep);
   printf("Grouping                      : %s\n", conv-> grouping);
   printf("International Currency symbol : %s\n", conv-> int_curr_symbol);
   printf("$ thousands separator         : %s\n", conv-> mon_thousands_sep);
   printf("$ grouping                    : %s\n", conv-> mon_grouping);
   printf("Positive sign                 : %s\n", conv-> positive_sign);
   printf("Negative sign                 : %s\n", conv-> negative_sign);
   printf("International fraction digits : %d\n", conv-> int_frac_digits);
   printf("Fraction digits               : %d\n", conv-> frac_digits);
   printf("Positive $ symbol precedes    : %d\n", conv-> p_cs_precedes);
   printf("Positive sign space separation: %d\n", conv-> p_sep_by_space);
   printf("Negative $ symbol precedes    : %d\n", conv-> n_cs_precedes);
   printf("Negative sign space separation: %d\n", conv-> n_sep_by_space);
   printf("Positive sign position        : %d\n", conv-> p_sign_posn);
   printf("Negative sign position        : %d\n", conv-> n_sign_posn);
   return 0;
 }

Portabilität

POSIX Win32 ANSI C ANSI C++

+

+

+

+