Namensräume
Varianten
Aktionen

lconv

Von cppreference.com
< c‎ | locale
Definiert im Header <locale.h>
struct lconv;

Die Struktur lconv enthält numerische und geldbezogene Formatierungsregeln, wie sie von einer C-Locale definiert werden. Objekte dieser Struktur können mit localeconv abgerufen werden. Die Member von lconv sind Werte vom Typ char und vom Typ char*. Jeder char*-Member außer decimal_point kann auf ein Nullzeichen zeigen (d. h. auf eine leere C-Zeichenkette). Die Member vom Typ char sind allesamt nicht-negative Zahlen, von denen jede CHAR_MAX sein kann, wenn der entsprechende Wert in der aktuellen C-Locale nicht verfügbar ist.

Inhalt

[bearbeiten] Member-Objekte

[bearbeiten] Nicht-monetäre numerische Formatierungsparameter

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

[bearbeiten] Geldbezogene numerische Formatierungsparameter

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

[bearbeiten] Lokale geldbezogene numerische Formatierungsparameter

char* currency_symbol
das Symbol, das für die Währung in der aktuellen C-Locale verwendet wird
(öffentliches Mitgliedsobjekt)
char frac_digits
die Anzahl der Ziffern nach dem Dezimaltrennzeichen, die für einen Geldwert angezeigt werden sollen
(öffentliches Mitgliedsobjekt)
char p_cs_precedes
1, wenn currency_symbol vor dem nicht-negativen Wert platziert wird, 0 wenn danach
(öffentliches Mitgliedsobjekt)
char n_cs_precedes
1, wenn currency_symbol vor dem negativen Wert platziert wird, 0 wenn danach
(ö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)

[bearbeiten] Internationale geldbezogene numerische Formatierungsparameter

char* int_curr_symbol
die Zeichenkette, die als internationaler Währungsname in der aktuellen C-Locale verwendet wird
(öffentliches Mitgliedsobjekt)
char int_frac_digits
die Anzahl der Ziffern nach dem Dezimaltrennzeichen, die für einen internationalen Geldwert angezeigt werden sollen
(öffentliches Mitgliedsobjekt)
char int_p_cs_precedes
(C99)
1, wenn int_curr_symbol vor dem nicht-negativen internationalen Geldwert platziert wird, 0 wenn danach
(öffentliches Mitgliedsobjekt)
char int_n_cs_precedes
(C99)
1, wenn int_curr_symbol vor dem 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 von grouping und mon_grouping zeigenden C-Zeichenketten werden gemäß ihren numerischen Werten interpretiert. Wenn das abschließende '\0' angetroffen wird, wird der zuletzt gesehene Wert für den Rest der Ziffern angenommen. Wird CHAR_MAX angetroffen, werden keine weiteren Ziffern gruppiert. Die typische Gruppierung von 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 das Vorzeichen klebt am Währungssymbol, der Wert ist durch ein Leerzeichen getrennt
2 das Vorzeichen klebt am Wert. Das Währungssymbol ist 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

[bearbeiten] 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 )

[bearbeiten] 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>

[bearbeiten] Siehe auch

fragt Details zur numerischen und geldbezogenen Formatierung der aktuellen Locale ab
(Funktion) [edit]