strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
Transformez une chaîne en fonction de les 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
);
Paramètres
strDest
chaîne de destination.strSource
Chaîne source.count
Nombre maximal de caractères à placer dans strDest*.*locale
Les paramètres régionaux à utiliser.
Valeur de retour
Retourne la longueur de la chaîne transformée, sans compter le caractère NULL de fin.si la valeur de retour est supérieur ou égal à count, le contenu d' strDest est imprévisible.Sur une erreur, chaque fonction définit errno et retourne INT_MAX.pour un caractère non valide, errno est défini à EILSEQ.
Notes
La fonction d' strxfrm transforme la chaîne désignée par strSource dans un nouveau formulaire assemblé stocké dans strDest.Pas plus que des caractères d' count , y compris le caractère Null, sont transformés et placés dans la chaîne résultante.La transformation est effectuée à l'aide de le paramètre de catégorie d' LC_COLLATE des paramètres régionaux.Pour plus d'informations sur LC_COLLATE, consultez setlocale.strxfrm utilise les paramètres régionaux définis pour son comportement dépendant des paramètres régionaux ; _strxfrm_l est identique mais il utilise les paramètres régionaux passés au lieu des paramètres régionaux.Pour plus d'informations, consultez Paramètres régionaux.
Après la transformation, un appel à strcmp avec les deux chaînes transformées que cède résultats identiques à celles d'un appel à strcoll appliquée aux deux chaînes d'origine.Comme avec strcoll et stricoll, strxfrm gère automatiquement les chaînes de caractères multioctets à votre convenance.
wcsxfrm est une version à caractère élargi d' strxfrm; les arguments de chaîne d' wcsxfrm sont les pointeurs à caractères larges.Pour wcsxfrm, après la transformation de chaîne, un appel à wcscmp avec les deux chaînes transformées que cède résultats identiques à celles d'un appel à wcscoll appliquée aux deux chaînes d'origine.wcsxfrm et strxfrm se comportent de sinon.wcsxfrm utilise les paramètres régionaux définis pour son comportement dépendant des paramètres régionaux ; _wcsxfrm_l utilise les paramètres régionaux passés au lieu des paramètres régionaux.
ces fonctions valident leurs paramètres.Si strSource est un pointeur null, ou strDest est un pointeur null (à moins que le nombre est égal à zéro), ou si count est supérieure INT_MAX, le gestionnaire de paramètre non valide est appelé, comme décrit dans Validation des paramètres .Si est autorisé à l'exécution de se poursuivre, ces errno défini par fonctions à EINVAL et à INT_MAXde retour.
mappages de routines de texte générique
routine de TCHAR.H |
_MBCS & de _UNICODE non défini |
_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 celui 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 des caractères lexicographiques.Par exemple, dans 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 » lexicographique.
Dans les paramètres régionaux pour lesquels le jeu de caractères et l'ordre des caractères lexicographiques diffèrent, utilisez strxfrm sur les chaînes d'origine puis strcmp sur les chaînes résultantes de produire une comparaison de chaînes lexicographique fonction de le paramètre actuel de catégorie d' LC_COLLATE des paramètres régionaux.Ainsi, pour comparer deux chaînes lexicographique 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 qu' strcmp sur les chaînes d'origine.
strxfrm est essentiellement un wrapper autour de LCMapString avec LCMAP_SORTKEY.
La valeur de l'expression suivante est la taille du tableau nécessaire pour maintenir la transformation d' 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 des informations de compatibilité supplémentaires, consultez compatibilité dans l'introduction.
Équivalent .NET Framework
Non applicable. Pour appeler la fonction C standard, utilisez PInvoke. Pour plus d'informations, consultez l' exemples d'appel de code non managé.