strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
Transformieren Sie eine 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 in strDest zu legen, Zeichen .locale
Das zu verwendende Gebietsschema.
Rückgabewert
Gibt die Länge der transformierten Zeichenfolge zurück und nicht angerechnet das NULL. Falls der Rückgabewert größer oder gleich count ist, ist der Inhalt eines strDest unvorhersehbar. Bei einem Fehler wird jeder Funktion errno festgelegt und INT_MAX zurückgegeben. Ein ungültiges Zeichen wird errno auf EILSEQ festgelegt.
Hinweise
Die strxfrm-Funktion umwandelt die Zeichenfolge, die von strSource in ein neues sortiertes Formular angezeigt wird, das im strDest gespeichert wird. Nicht mehr als count Zeichen, einschließlich das Nullzeichen, werden in die Ergebniszeichenfolge transformiert und platziert. Die Transformation wird mithilfe der LC_COLLATE Kategorieneinstellung des Gebietsschemas gemacht. Weitere Informationen zu LC_COLLATE finden Sie unter setlocale. strxfrm verwendet das aktuelle Gebietsschema sein gebietsschemaabhängiges Verhalten; _strxfrm_l ist identisch, es werden in das Gebietsschema, das statt des aktuellen Gebietsschemas übergeben wird. Weitere Informationen finden Sie unter Locale.
Nach der Transformation angewendet hat ein Aufruf von strcmp mit den beiden transformierten Zeichenfolgen, zurückgehalten identisch mit denen eines Anrufs strcoll entsteht, mit den ursprünglichen zwei Zeichenfolgen. Wie bei strcoll und stricoll, behandelt strxfrm automatisch Mehrbyte-Zeichenfolgen entsprechend.
wcsxfrm ist eine Breitzeichen-Version von strxfrm; die Zeichenfolgenargumente von wcsxfrm sind Breitzeichenzeiger. Für wcsxfrm nach der Zeichenfolgentransformation, ein Aufruf von wcscmp mit den beiden Zeichenfolgenerträgen transformierten identisch mit denen eines Anrufs wcscoll entsteht, auf den ursprünglich zwei Zeichenfolgen. wcsxfrm und strxfrm verhalten sich andernfalls identisch. wcsxfrm verwendet das aktuelle Gebietsschema sein gebietsschemaabhängiges Verhalten; _wcsxfrm_l verwendet das Gebietsschema, das in statt des aktuellen Gebietsschemas übergeben wird.
Diese Funktionen überprüfen ihre Parameter. Wenn strSource ein NULL-Zeiger ist oder strDest ein NULL-Zeiger ist (es sei denn, Anzahl (null) oder wenn count größer als INT_MAX ist, wird der ungültige Parameterhandler aufgerufen, wie in Parametervalidierung beschrieben. Wenn die weitere Ausführung zugelassen wird, stellen diese Funktionen errno auf EINVAL ein und geben INT_MAX zurück.
Zuordnung generischer Textroutinen
TCHAR.H-Routine |
_UNICODE & _MBCS nicht definiert |
_MBCS definiert |
_UNICODE definiert |
---|---|---|---|
_tcsxfrm |
strxfrm |
strxfrm |
wcsxfrm |
_tcsxfrm_l |
_strxfrm_l |
_strxfrm_l |
_wcsxfrm_l |
Im "C"- Gebietsschema ist die Reihenfolge der Zeichen im Zeichensatz (ASCII-Zeichensatz) mit der lexikografischen Reihenfolge der Zeichen. In anderen Gebietsschemas, kann die Reihenfolge der Zeichen im Zeichensatz sich von der lexikografischen Reihenfolge. Beispielsweise in bestimmten europäischen Gebietsschemas, geht das Zeichen "a" (Wert 0x61) das Zeichen 'ä voran; '(Wert 0xE4) im Zeichensatz, in der Zeichen "ä" wird dem Zeichen "a" lexikografisch voran.
In den Gebietsschemas, für die der Zeichensatz und die lexikografische Reihenfolge unterscheiden, verwenden Sie strxfrm auf den Vorlagenzeichenfolgen und strcmp auf den Ergebniszeichenfolgen, einen lexikografischen Zeichenfolgenvergleiche anhand der aktuellen LC_COLLATE Kategorieneinstellung des Gebietsschemas dann zu erzeugen. also zwei Zeichenfolgen im obigen Gebietsschema lexikografisch vergleichen, verwenden Sie strxfrm für die ursprünglichen Zeichenfolgen, dann strcmp auf den Ergebniszeichenfolgen. Alternativ können Sie strcoll statt strcmp für die ursprünglichen Zeichenfolgen verwenden.
strxfrm ist im Allgemeinen ein Wrapper um LCMapString mit LCMAP_SORTKEY.
Der Wert des folgenden Ausdrucks ist die Größe des Arrays, das erforderlich ist, um die strxfrm der Transformation Quellzeichenfolge enthalten:
1 + strxfrm( NULL, string, 0 )
Nur im "C " - Gebietsschema, 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> |
Zusätzliche Informationen zur Kompatibilität finden Sie unter Kompatibilität in der Einführung.
.NET Framework-Entsprechung
Nicht zutreffend. Mit PInvoke rufen Sie die Standard-C-Funktion auf. Weitere Informationen finden Sie unter Beispiele für Plattformaufrufe.