Namespaces
Variants

lconv

From cppreference.net
Definiert im Header <locale.h>
struct lconv ;

Die Struktur lconv enthält numerische und monetäre Formatierungsregeln, wie sie von einem C-Locale definiert werden. Objekte dieser Struktur können mit localeconv erhalten werden. Die Mitglieder von lconv sind Werte vom Typ char und vom Typ char * . Jedes char * Mitglied außer decimal_point kann auf ein Nullzeichen zeigen (das heißt, auf einen leeren C-String). Die Mitglieder vom Typ char sind alle nicht-negative Zahlen, von denen jede CHAR_MAX sein kann, wenn der entsprechende Wert im aktuellen C-Locale nicht verfügbar ist.

Inhaltsverzeichnis

Member-Objekte

Nicht-monetäre numerische Formatierungsparameter

char* decimal_point
Das als Dezimaltrennzeichen verwendete Zeichen
(öffentliches Mitgliedsobjekt)
char* thousands_sep
Das zur Trennung von Zifferngruppen vor dem Dezimaltrennzeichen verwendete Zeichen
(öffentliches Mitgliedsobjekt)
char* grouping
Eine Zeichenkette, deren Elemente die Größen von Zifferngruppen angeben
(öffentliches Mitgliedsobjekt)

Monetäre numerische Formatierungsparameter

char* mon_decimal_point
Das Zeichen, das als Dezimaltrennzeichen verwendet wird
(öffentliches Mitgliedsobjekt)
char* mon_thousands_sep
Das Zeichen zur Trennung von Zifferngruppen vor dem Dezimaltrennzeichen
(öffentliches Mitgliedsobjekt)
char* mon_grouping
Eine Zeichenkette, deren Elemente die Größen von Zifferngruppen angeben
(öffentliches Mitgliedsobjekt)
char* positive_sign
Eine Zeichenkette zur Kennzeichnung nicht-negativer Geldbeträge
(öffentliches Mitgliedsobjekt)
char* negative_sign
Eine Zeichenkette zur Kennzeichnung negativer Geldbeträge
(öffentliches Mitgliedsobjekt)

Lokale monetäre numerische Formatierungsparameter

char* currency_symbol
Das in der aktuellen C-Locale verwendete Währungssymbol
(öffentliches Mitgliedsobjekt)
char frac_digits
Die Anzahl der Nachkommastellen zur Anzeige eines Geldbetrags
(öffentliches Mitgliedsobjekt)
char p_cs_precedes
1 falls currency_symbol vor nicht-negativem Wert steht, 0 falls dahinter
(öffentliches Mitgliedsobjekt)
char n_cs_precedes
1 falls currency_symbol vor negativem Wert steht, 0 falls dahinter
(öffentliches Mitgliedsobjekt)
char p_sep_by_space
Gibt die Trennung von currency_symbol , positive_sign und dem nicht-negativen Geldwert an
(öffentliches Mitgliedsobjekt)
char n_sep_by_space
Gibt die Trennung von currency_symbol , negative_sign und dem negativen Geldwert an
(öffentliches Mitgliedsobjekt)
char p_sign_posn
Gibt die Position von positive_sign in einem nicht-negativen Geldwert an
(öffentliches Mitgliedsobjekt)
char n_sign_posn
Gibt die Position von negative_sign in einem negativen Geldwert an
(öffentliches Mitgliedsobjekt)

Internationale monetäre numerische Formatierungsparameter

char* int_curr_symbol
die Zeichenkette, die als internationaler Währungsname im aktuellen C-Locale verwendet wird
(öffentliches Mitgliedsobjekt)
char int_frac_digits
die Anzahl der Nachkommastellen, die in einer internationalen Geldmenge angezeigt werden
(öffentliches Mitgliedsobjekt)
char int_p_cs_precedes
(C99)
1 wenn int_curr_symbol vor einem nicht-negativen internationalen Geldwert platziert wird, 0 wenn danach
(öffentliches Mitgliedsobjekt)
char int_n_cs_precedes
(C99)
1 wenn int_curr_symbol vor einem negativen internationalen Geldwert platziert wird, 0 wenn danach
(öffentliches Mitgliedsobjekt)
char int_p_sep_by_space
(C99)
gibt die Trennung von int_curr_symbol , positive_sign und dem nicht-negativen internationalen Geldwert an
(öffentliches Mitgliedsobjekt)
char int_n_sep_by_space
(C99)
gibt die Trennung von int_curr_symbol , negative_sign und dem negativen internationalen Geldwert an
(öffentliches Mitgliedsobjekt)
char int_p_sign_posn
(C99)
gibt die Position von positive_sign in einem nicht-negativen internationalen Geldwert an
(öffentliches Mitgliedsobjekt)
char int_n_sign_posn
(C99)
gibt die Position von negative_sign in einem negativen internationalen Geldwert an
(öffentliches Mitgliedsobjekt)

Die Zeichen der C-Strings, auf die durch grouping und mon_grouping gezeigt wird, werden entsprechend ihrer numerischen Werte interpretiert. Wenn das abschließende ' \0 ' angetroffen wird, wird angenommen, dass der zuletzt gesehene Wert für die verbleibenden Ziffern wiederholt wird. Wenn CHAR_MAX angetroffen wird, werden keine weiteren Ziffern gruppiert. Die typische Gruppierung von jeweils drei Ziffern ist " \003 " .

Die Werte von p_sep_by_space , n_sep_by_space , int_p_sep_by_space , int_n_sep_by_space werden wie folgt interpretiert:

0 Kein Leerzeichen trennt das Währungssymbol und den Wert
1 Vorzeichen klebt am Währungssymbol, Wert wird durch ein Leerzeichen getrennt
2 Vorzeichen klebt am Wert. Währungssymbol wird durch ein Leerzeichen getrennt

Die Werte von p_sign_posn , n_sign_posn , int_p_sign_posn , int_n_sign_posn werden wie folgt interpretiert:

0 Klammern um den Wert und das Währungssymbol werden zur Darstellung des Vorzeichens verwendet
1 Vorzeichen vor dem Wert und dem Währungssymbol
2 Vorzeichen nach dem Wert und dem Währungssymbol
3 Vorzeichen vor dem Währungssymbol
4 Vorzeichen nach dem Währungssymbol

Beispiel

#include <locale.h>
#include <stdio.h>
int main(void)
{
    setlocale(LC_ALL, "ja_JP.UTF-8");
    struct lconv* lc = localeconv();
    printf("Japanese currency symbol: %s(%s)\n", lc->currency_symbol, lc->int_curr_symbol);
}

Mögliche Ausgabe:

Japanese currency symbol: ¥(JPY )

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.11/2 Lokalisierung <locale.h> (S.: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.11/2 Lokalisierung <locale.h> (S.: TBD)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.11/2 Lokalisierung <locale.h> (S: 223)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.11/2 Lokalisierung <locale.h> (S: 204)
  • C89/C90 Standard (ISO/IEC 9899:1990):
  • 4.4 LOKALISIERUNG <locale.h>

Siehe auch

Abfrage der numerischen und monetären Formatierungsdetails der aktuellen Locale
(Funktion)