strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
Transformieren einer Zeichenfolge auf Grundlage gebietsschemaspezifische Informationen.
size_t strxfrm(
char *strDest,
const char *strSource,
size_t count
);
size_t wcsxfrm(
wchar_t *strDest,
const wchar_t *strSource,
size_t count
);
size_t _strxfrm_l(
char *strDest,
const char *strSource,
size_t count,
_locale_t locale
);
size_t wcsxfrm_l(
wchar_t *strDest,
const wchar_t *strSource,
size_t count,
_locale_t locale
);
Parameter
strDest
Zielzeichenfolge.strSource
Quellzeichenfolge.count
Maximale Anzahl von Zeichen in strDestplatziert werden sollen*.*locale
Das zu verwendende Gebietsschema.
Rückgabewert
Gibt die Länge der transformierten Zeichenfolge zurück und nicht gezählt wird das NULL.Wenn der Rückgabewert größer oder gleich countist, wird der Inhalt von strDest unvorhersehbar.Bei einem Fehler wird jede Funktion errno fest und gibt INT_MAXzurück.Für ein ungültiges Zeichen wird errno zu EILSEQfestgelegt.
Hinweise
Die strxfrm-Funktion wandelt die Zeichenfolge, die durch strSource in ein neues sortiertes Formular angezeigt wird, das in strDestgespeichert wird.Nicht mehr als count Zeichen einschließlich NULL-Zeichen, werden in die resultierende Zeichenfolge umgewandelt und platziert.Die Transformation wird mit der LC_COLLATE Kategorieeinstellung des Gebietsschemas gemacht.Weitere Informationen zu LC_COLLATEfinden Sie unter setlocale.strxfrm verwendet das aktuelle Gebietsschema für das gebietsschemaabhängiges Verhalten. _strxfrm_l ist identisch, mit der Ausnahme, dass sie verwendet das Gebietsschema, das anstatt des aktuellen Gebietsschemas übergeben wird.Weitere Informationen finden Sie unter Gebietsschema.
Nach der Transformation führt ein Aufruf strcmp mit den beiden transformierten Zeichenfolgen mit denen die Ergebnisse eines Aufrufs von strcoll angewendeten sind identisch mit den ursprünglichen zwei Zeichenfolgen.Wie bei strcoll und stricollstrxfrm Mehrbyte-Zeichenfolgen automatisch behandelt.
wcsxfrm ist eine Breitzeichen-Version von strxfrm. die Zeichenfolgenargumente aus wcsxfrm sind Breitzeiche Zeiger.Für wcsxfrmtransformation Zeichenfolgen nach dem Aufruf von wcscmp wird mit den beiden transformierten Zeichenfolgen mit denen die Ergebnisse eines Aufrufs von wcscoll angewendeten sind identisch mit den ursprünglichen zwei Zeichenfolgen.wcsxfrm und strxfrm verhalten sich ansonsten unterscheiden.wcsxfrm verwendet das aktuelle Gebietsschema für das gebietsschemaabhängiges Verhalten. _wcsxfrm_l verwendet das Gebietsschema, das anstatt des aktuellen Gebietsschemas übergeben wird.
Diese Funktionen überprüfen deren Parameter.Wenn strSource ein NULL-Zeiger ist, oder strDest ein NULL-Zeiger ist (es sei denn, Anzahl null) oder größer als countINT_MAXungültige Parameter ist, wird der Ereignishandler aufgerufen, wie in Parametervalidierung beschrieben.Wenn die Ausführung fortgesetzt werden kann, darf dieses Features zu errno festlegen EINVAL und geben INT_MAX.
Zuweisung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definieren |
_UNICODE definiert |
---|---|---|---|
_tcsxfrm |
strxfrm |
strxfrm |
wcsxfrm |
_tcsxfrm_l |
_strxfrm_l |
_strxfrm_l |
_wcsxfrm_l |
Im Gebietsschema „C“ ist die Reihenfolge der Zeichen im Zeichensatz (ASCII-Zeichensatz) identisch mit der lexikografische Reihenfolge der Zeichen.In anderen Gebietsschemas, unterscheidet sich die Reihenfolge der Zeichen im Zeichensatz von der lexikografischen Zeichenreihenfolge.Beispielsweise kann in bestimmten europäischen Gebietsschemas, wechselt das Zeichen „a“ (Wert) 0x61 dem Zeichen „ä voran. 0xE4 Wert (“) im Zeichensatz, aber in Zeichen „ä“ geht dem Zeichen „a“ lexikografisch voran.
In den Gebietsschemas, für die der Zeichensatz und die lexikografische Zeichenreihenfolge unterscheiden, verwenden Sie strxfrm auf den ursprünglichen Zeichenfolgen und strcmp auf den resultierenden Zeichenfolgen gewonnen, einen lexikografischen Zeichenfolgenvergleiche gemäß der aktuellen LC_COLLATE Kategorieeinstellung des Gebietsschemas dann zu erzeugen.Wie im obigen zwei Zeichenfolgen vergleichen, lexikografisch Gebietsschema verwendet strxfrm auf den ursprünglichen Zeichenfolgen, strcmp auf den resultierenden Zeichenfolgen gewonnen.Wahlweise können Sie strcollstrcmp anstatt auf den ursprünglichen Zeichenfolgen verwenden.
strxfrm ist im Allgemeinen ein Wrapper um LCMapString mit LCMAP_SORTKEY.
Der Wert des folgenden Ausdrucks beträgt die Größe des Arrays, das erforderlich ist, um die strxfrm Transformation der Quellzeichenfolge aufzunehmen:
1 + strxfrm( NULL, string, 0 )
Nur im Gebietsschema „C“, strxfrm entspricht dem folgenden Code:
strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );
Anforderungen
Routine |
Erforderlicher Header |
---|---|
strxfrm |
<string.h> |
wcsxfrm |
<string.h> oder <wchar.h> |
_strxfrm_l |
<string.h> |
_wcsxfrm_l |
<string.h> oder <wchar.h> |
Um Kompatibilität zusätzlichen Informationen finden Sie unter Kompatibilität in der Einführung.
.NET Framework-Entsprechung
Nicht zutreffend. Um die Standard-C-Funktion aufrufen, verwenden Sie PInvoke. Weitere Informationen finden Sie unter Plattformaufruf-Beispiele.