Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

localeconv - Lokalitätskomponenten ändern

&pagelevel(4)&pagelevel

Definition

include <locale.h>

struct lconv *localeconv(void);

Beschreibung

localeconv() versieht die Komponenten einer Struktur vom Typ struct lconv (definiert in locale.h) mit Formatierungswerten für numerische Größen (monetäre und andere Größen) entsprechend der aktuellen Lokalität.

Die *char-Komponenten der Struktur lconv sind Zeiger auf Zeichenketten, von denen jeder außer decimal_point auf eine leere Zeichenkette "" zeigen kann; dadurch wird angegeben, dass der Wert in der aktuellen Lokalität nicht definiert ist oder die Länge null hat.

Die char-Komponenten der Struktur lconv sind nichtnegative Zahlen, von denen jede den Wert {CHAR_MAX} annehmen kann (siehe limits.h); dadurch wird angegeben, dass der Wert in der aktuellen Lokalität nicht verfügbar ist.

Die Komponenten für nichtmonetäre numerische Werte (LC_NUMERIC) haben folgende Bedeutungen:

char *decimal_point

Dezimalzeichen zur Formatierung nichtmonetärer Größen.

char *thousands_sep

Trennzeichen zwischen Zifferngruppen links vom Dezimalpunkt zur Formatierung nichtmonetärer Größen.

char *grouping

Zeichenkette, deren Elemente, wenn sie als Ein-Byte-Wert vom Typ integer behandelt werden, die Größe jeder Zifferngruppe in nichtmonetärer Größe angeben (siehe auch unten).

Die Komponenten für monetäre Werte (LC_MONETARY) haben folgende Bedeutungen:

char *int_curr_symbol

Internationales Währungssymbol, das für die aktuelle Lokalität verwendet wird. Der Operand ist eine Zeichenkette aus vier Zeichen. Die ersten drei Zeichen bilden das internationale Währungssymbol, wie bei ISO 4217:1987 festgelegt. Das vierte Zeichen, das unmittelbar vor dem Nullbyte steht, ist das Trennzeichen zwischen Währungssymbol und monetärer Größe. In der Lokalität "De.EDF04F@euro" ist der Wert “EUR“ als alphabetisches Währungssymbol eingetragen.

char *currency_symbol

Lokales Währungssymbol, das für die aktuelle Lokalität verwendet wird.

char *mon_decimal_point

Dezimalzeichen für die Formatierung von monetären Größen. Im ISO-C Standard ist diese Komponente auf ein Byte beschränkt. Wenn ein Multiby- te-Operand spezifiziert wird, ist das Ergebnis unbestimmt.

char *mon_thousands_sep

Trennzeichen für Zifferngruppen links vom Dezimalpunkt in formatierten, monetären Größen. Im ISO-C Standard ist diese Komponente auf ein Byte beschränkt. Wenn ein Multibyte-Operand spezifiziert wird, ist das Ergebnis unbestimmt.

char *mon_grouping

Zeichenkette, deren Elemente, wenn sie als ganzzahlige Ein-Byte-Werte betrachtet werden, die Größe jeder Zifferngruppe in formatierten, monetären Größen anzeigen. Der Operand ist eine Folge ganzer Zahlen, die durch Semikolon voneinander getrennt sind. Jede Zahl gibt die Anzahl der Stellen in jeder Gruppe an, wobei die erste Zahl die Größe der Gruppe angibt, die direkt vor dem Dezimaltrennzeichen steht, und die folgenden Zahlen die vorangehenden Gruppen bestimmen. Wenn die letzte Zahl ungleich -1 ist, wird die vorhergehende Gruppe (falls es eine gibt) für den Rest der Stellen immer wieder verwendet. Wenn die letzte Zahl -1 ist, wird keine weitere Gruppierung durchgeführt (siehe auch unten).

char *positive_sign

Zeichenkette, die eine nichtnegative, formatierte, monetäre Größe anzeigt.

char *negative_sign

Zeichenkette, die eine negative, formatierte, monetäre Größe anzeigt.

char int_frac_digits

Anzahl der Dezimalstellen, die in international, formatierten, monetären Größen angezeigt werden, wobei int_curr_symbol verwendet wird.

char frac_digits

Anzahl der Dezimalstellen, die in einer formatierten, monetären Größe dargestellt werden, wobei currency_symbol verwendet wird.

char p_cs_precedes

Wird auf 1 gesetzt, wenn currency_symbol oder int_curr_symbol dem Wert für eine monetäre Größe mit einem nichtnegativen Wert vorangehen, und wird auf 0 gesetzt, wenn eines dieser Symbole auf den Wert folgt.

char p_sep_by_space

Wird auf 0 gesetzt, wenn kein Leerzeichen das currency_symbol oder int_curr_symbol vom Wert einer nichtnegativen, formatierten, monetä-ren Größe trennt. Die Komponente wird auf 1 gesetzt, wenn ein Leerzeichen zwischen Symbol und Wert steht; sie wird auf 2 gesetzt, wenn ein Leerzeichen zwischen dem Symbol und einer angrenzenden Zeichenkette steht.

char n_cs_precedes

Wenn diese Komponente den Wert 1 hat, wird das Währungssymbol c currency_symbol oder int_curr_symbol vor den Wert einer negativen, formatierten, monetären Größe geschrieben. Sonst wird die Komponente auf 0 gesetzt.

char n_sep_by_space

Wird auf 0 gesetzt, wenn kein Leerzeichen das currency_symbol oder i int_curr_symbol vom Wert einer negativen, formatierten, monetären Größe trennt. Die Komponente wird auf 1 gesetzt, wenn ein Leerzeichen zwischen Symbol und Wert steht, und sie wird auf 2 gesetzt, wenn ein Leerzeichen zwischen dem Symbol und einer angrenzenden Zeichenkette steht.

char p_sign_posn

Diese Komponente wird auf einen Wert gesetzt, der die Position des positiven Vorzeichens positive_sign für eine nichtnegative, formatierte, monetäre Größe angibt (siehe auch unten).

char n_sign_posn

Wird auf einen Wert gesetzt, der die Position des negativen Vorzeichens negative_sign für eine negative, formatierte, monetäre Größe angibt (siehe auch unten).

Die Elemente von grouping und mon_grouping werden wie folgt interpretiert:

CHAR-MAX

Keine weitere Gruppierung wird durchgeführt.

0

Das vorherige Element wird für die restlichen Ziffern wiederholt verwendet.

other

Der Wert ist die Anzahl der Ziffern, welche sich in der aktuellen Gruppe befinden. Das nächste Element wird überprüft, um die Größe der nächsten Zifferngruppe links von der aktuellen Gruppe zu bestimmen.

Die Werte von p_sign_posn und n_sign_posn werden wie folgt interpretiert:

0

Größe und Währungssymbol currency_symbol oder int_curr_symbol werden in Klammern gesetzt.

1

Das Vorzeichen steht vor der Größe und dem Währungssymbol c currency_symbol oder int_curr_symbol.

2

Das Vorzeichen steht hinter der Größe und dem Währungssymbol c currency_symbol oder int_curr_symbol.

3

Das Vorzeichen steht direkt vor dem Währungssymbol currency_symbol oder int_curr_symbol.

4

Das Vorzeichen steht direkt hinter dem Währungssymbol currency_symbol oder int_curr_symbol.

Die Implementierung verhält sich, als ob keine Funktion localeconv() aufruft.

Returnwert

Zeiger auf die Struktur, in die die Werte eingetragen wurden



bei erfolgreicher Beendigung.

Hinweis

Die Struktur, auf die der Returnwert zeigt, darf nicht durch das Programm verändert werden, kann aber durch einen weiteren Aufruf localeconv() überschrieben werden. Außerdem können setlocale-Aufrufe mit den Kategorien LC_ALL, LC_MONETARY oder LC_NU- MERIC den Inhalt der Struktur überschreiben.

Beispiel

Die folgende Tabelle demonstriert die Regeln zur Formatierung monetärer Größen anhand von drei Ländern:

Land

Positives Format

Negatives Format

Internationales Format

Deutschland

EUR 1.234,56

-EUR 1.234,56

EUR 1.234,56

Norwegen

kr1.234,56

kr1.234,56-

NOK 1.234,56

Schweiz

SFrs.1,234.56

SFrs.1,234.56C

CHF 1,234.56

Für diese drei Länder werden die entsprechenden Werte für die monetären Komponenten von localeconv() wie folgt zurückgegeben:

Komponentenwerte

Deutschland

Norwegen

Schweiz

int_curr_symbol

"EUR"

"NOK "

"CHF "

currency_symbol

"?"

"kr"

"SFrs."

mon_decimal_point

","

","

"."

mon_thousands_sep

"."

"."

","

mon_grouping

3;3

"\3"

"\3

positive_sign

""

""

""

negative_sign

"-"

"-"

"C"

int_frac_digits

2

2

2

frac_digits

2

2

2

p_cs_precedes

0

1

1

p_sep_by_space

1

0

0

n_cs_precedes

0

1

1

n_sep_by_space

1

0

0

p_sign_posn

1

1

1

n_sign_posn

1

2

2

Siehe auch

isalpha(), isascii(), nl_langinfo(), printf(), scanf(), setlocale(), strcat(), strchr(), strcmp(), strcoll(), strcpy(), strftime(), strlen(), strpbrk(), strspn(), strtok(), strxrfm(), strtod(), langinfo.h, local.h, Abschnitt "Lokalität“.