Pour afficher l’article en anglais, activez la case d’option Anglais. Vous pouvez aussi afficher la version anglaise dans une fenêtre contextuelle en faisant glisser le pointeur de la souris sur le texte.
Traduction
Anglais

strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l

 

Transforme une chaîne en fonction d'informations spécifiques aux paramètres régionaux.

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
);

strDest

Chaîne de destination.

strSource

Chaîne source.

count

Nombre maximal de caractères à placer dans strDest.

locale

Paramètres régionaux à utiliser.

Retourne la longueur de la chaîne transformée, sans compter le caractère de fin NULL.Si la valeur de retour est supérieure ou égale à count, le contenu de strDest est imprévisible.xEn cas d'erreur, chaque fonction définit errno et retourne INT_MAX.Pour un caractère non valide, errno a la valeur EILSEQ.

La fonction strxfrm convertit la chaîne désignée par strSource dans un nouveau formulaire assemblé stocké dans strDest.Pas plus de count caractères, y compris le caractère NULL, ne peuvent être transformés et placés dans la chaîne résultante.La transformation s'effectue à l'aide du paramètre de catégorie LC_COLLATE des paramètres régionaux.Pour plus d'informations sur LC_COLLATE, consultez setlocale. strxfrm utilise les paramètres régionaux actuels pour son comportement dépend des paramètres régionaux ; _strxfrm_l est identique à la différence qu'il utilise les paramètres régionaux transmis à la place des paramètres régionaux actuels.Pour plus d'informations, consultez Paramètres régionaux.

Après la transformation, un appel à strcmp avec les deux chaînes transformées génère des résultats identiques à ceux d'un appel à strcoll appliqué aux deux chaînes d'origine.Comme avec strcoll et stricoll, strxfrm gère automatiquement des chaînes de caractères multi-octets comme approprié.

wcsxfrm est une version à caractères larges de strxfrm ; les arguments de chaîne de wcsxfrm sont des pointeurs à caractères larges.Pour wcsxfrm, après la transformation en chaîne, un appel à wcscmp avec les deux chaînes transformées génère des résultats identiques à ceux d'un appel à wcscoll appliqué aux deux chaînes d'origine. wcsxfrm et strxfrm se comportent sinon de manière identique. wcsxfrm utilise les paramètres régionaux actuels pour son comportement dépend des paramètres régionaux ; _wcsxfrm_l utilise les paramètres régionaux transmis à la place des paramètres régionaux actuels.

Ces fonctions valident leurs paramètres.Si strSource est un pointeur null, ou strDest est un pointeur null (sauf si le compte est zéro), ou si count est supérieur à INT_MAX, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation de paramètre.Si l'exécution est autorisée à se poursuivre, ces fonctions définissent errno à la valeur EINVAL et retournent INT_MAX.

Mappages de routines de texte générique

Routine TCHAR.H

_UNICODE & _MBCS non définis

_MBCS défini

_UNICODE défini

_tcsxfrm

strxfrm

strxfrm

wcsxfrm

_tcsxfrm_l

_strxfrm_l

_strxfrm_l

_wcsxfrm_l

Dans les paramètres régionaux « C », l'ordre des caractères dans le jeu de caractères (jeu de caractères ASCII) est le même que l'ordre lexicographique des caractères.Toutefois, dans d'autres paramètres régionaux, l'ordre des caractères dans le jeu de caractères peut différer de l'ordre de caractère lexicographique.Par exemple, avec certains paramètres régionaux européens, le caractère « a » (valeur 0x61) précède le caractère 'ä' (valeur 0xE4) dans le jeu de caractères, mais le caractère « ä » précède le caractère « a » lexicographiquement.

Dans les paramètres régionaux pour lesquels le jeu de caractères et ordre des caractères lexicographiques diffèrent, utilisez strxfrm sur les chaînes d'origine puis strcmp sur les chaînes résultantes pour produire une comparaison lexicographique de chaîne en fonction du paramètre actuel de la catégorie LC_COLLATE des paramètres régionaux.Par conséquent, pour comparer deux chaînes lexicographiquement dans les paramètres régionaux ci-dessus, utilisez strxfrm sur les chaînes d'origine, puis strcmp sur les chaînes résultantes.Ou bien, vous pouvez utiliser strcoll plutôt que strcmp sur les chaînes d'origine.

strxfrm est fondamentalement un wrapper autour de LCMapString avec LCMAP_SORTKEY.

La valeur de l'expression suivante est la taille de la table nécessaire pour contenir la transformation strxfrm de la chaîne source :

1 + strxfrm( NULL, string, 0 )

Dans les paramètres régionaux « C » uniquement, strxfrm équivaut à ce qui suit :

strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );

Configuration requise

Routine

En-tête requis

strxfrm

<string.h>

wcsxfrm

<string.h> ou <wchar.h>

_strxfrm_l

<string.h>

_wcsxfrm_l

<string.h> ou <wchar.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Équivalent .NET Framework

Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez Exemples d'appel de plateforme.

Afficher: