Your Browser is not longer supported

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

{{viewport.spaceProperty.prod}}

strxfrm - Zeichenkette abhängig von LC_COLLATE umwandeln

&pagelevel(4)&pagelevel

Definition

#include <string.h>

size_t strxfrm(char *s1, const char *s2, size_t n);

Beschreibung

strxfrm() transformiert die Zeichenkette s2 und schreibt die resultierende Zeichenkette in das Feld s1. Die Transformation läuft so ab, dass bei Anwendung von strcmp() auf zwei transformierte Zeichenketten dasselbe Resultat zurückgegeben wird, als ob strcoll() auf die beiden originalen Zeichenketten angewendet würde. Die Transformation hängt von der lokalen Einstellung der Kategorie LC_COLLATE des Programms ab (siehe setlocale()).

Maximal n Bytes (einschließlich des abschließenden Nullbytes) werden in das Feld kopiert, auf das s1 zeigt. Wenn n gleich 0 ist, darf s1 ein Nullzeiger sein. Wenn zwei sich überlappende Objekte kopiert werden, ist das Verhalten undefiniert.

Returnwert

Länge der transformierten Zeichenkette (ohne das abschließende Nullbyte)



bei Erfolg.

 

Wert >= n

der Inhalt des Felds s1 ist undefiniert.


Da der Returnwert im Fehlerfall nicht festgelegt ist, können Fehler nur wie folgt festgestellt werden: errno wird auf 0 gesetzt, anschließend wird strxfrm() aufgerufen und errno geprüft. Wenn errno ungleich 0 ist, muss ein Fehler aufgetreten sein. 

Fehler

strxfrm() schlägt fehl, wenn gilt:


EINVAL

Das Argument s2 enthält Zeichen, die außerhalb des Bereichs der Sortierreihenfolge liegen.

Hinweise

Als Argument s2 wird eine Zeichenkette erwartet, die mit dem Nullbyte abgeschlossen ist.

Die Zeichenkette s2 wird durch strxfrm nicht verändert. Die Transformation wird in einem Arbeitsbereich durchgeführt.

Wenn der Returnwert größer oder gleich n ist, ist der Inhalt der Zeichenkette s1 unbestimmbar, da kein Nullbyte geschrieben wurde.

Wenn in der aktuellen Lokalität einem Zeichen in der Zeichenkette s2 der sedezimale Wert 0 zugeordnet ist, schließt dieses Zeichen als Nullbyte die transformierte Zeichenkette ab.

Siehe auch

setlocale(), strcoll(), strcmp(), string.h.