strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l
로캘 관련 정보를 기준으로 문자열을 변환 합니다.
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
대상 문자열입니다.strSource
원본 문자열입니다.count
최대 문자에 넣으려면 strDest*.*locale
사용 하는 로캘.
반환 값
종료 null 문자를 계산 하 여 변환 된 문자열의 길이 반환 합니다.반환 값 보다 크거나 같은지 경우 count, 해당 콘텐츠를 strDest 예측할 수 없습니다.각 함수에서 오류를 설정 하는 errno 를 반환 하 고 INT_MAX.잘못 된 문자에 대 한 errno 로 설정 된 EILSEQ.
설명
strxfrm 함수 포인터가 가리키는 문자열 변환 strSource 형식의 새 파일에 저장 된 양식 한 부씩 strDest.두 개 이상의 count null 문자를 포함 하 여 문자를 변환 하 고 결과 문자열에 배치 합니다.해당 로케일을 사용 하 여 변환을 구성 되어 LC_COLLATE 범주 설정 합니다.에 대 한 자세한 내용은 LC_COLLATE를 참조 하십시오 setlocale.strxfrm현재 로캘을 로캘 종속 동작을 사용합니다. _strxfrm_l현재 로캘 대신 전달 된 로캘을 사용 하는 점을 제외 하 고 동일 합니다.자세한 내용은 로캘를 참조하십시오.
변환에 대 한 호출 후 strcmp 와 동일한 호출의 결과 두 개의 변환 된 문자열을 얻을 수 strcoll 두 원본 문자열에 적용 합니다.와 마찬가지로 strcoll 및 stricoll, strxfrm 멀티 바이트 문자 문자열을 적절 하 게 자동으로 처리 합니다.
wcsxfrm와이드 문자 버전입니다 strxfrm. 문자열 인수를 wcsxfrm 와이드 문자에 대 한 포인터입니다.에 대 한 wcsxfrm, 후를 호출 하 고 문자열 변환 wcscmp 두 개의 변환 된 문자열을 동일한 호출의 결과 얻을 수 wcscoll 두 원본 문자열에 적용 합니다.wcsxfrm및 strxfrm 그렇지을 동일 하 게 작동 합니다.wcsxfrm현재 로캘을 로캘 종속 동작을 사용합니다. _wcsxfrm_l대신 현재 로케일에 전달 된 로캘이 사용 됩니다.
이러한 함수 매개 변수의 유효성을 검사 합니다.경우 strSource 은 null 포인터입니다. 또는 strDest (카운트가 0 인 경우를 제외 하 고)은 NULL 포인터입니다, 또는 count 보다 큰 INT_MAX, 설명에 따라 잘못 된 매개 변수 처리기가 호출 매개 변수 유효성 검사 .실행을 계속 수 있으면 이러한 함수를 설정 errno 에 EINVAL 를 반환 하 고 INT_MAX.
일반 텍스트 루틴 매핑
TCHAR입니다.H 루틴 |
_UNICODE 및 _Mbcs가 정의 되지 않았습니다. |
_Mbcs가 정의 |
_Unicode가 정의 |
---|---|---|---|
_tcsxfrm |
strxfrm |
strxfrm |
wcsxfrm |
_tcsxfrm_l |
_strxfrm_l |
_strxfrm_l |
_wcsxfrm_l |
"C" 로케일에 순서 문자 (ASCII 문자 집합) 문자 집합의 문자 lexicographic 순서와 같습니다.그러나 다른 로캘에서 순서 문자에 문자 집합 lexicographic 문자 순서와 다를 수 있습니다.예를 들어, 특정 유럽 로케일에서 문자 'a' (값 0x61) 문자 앞에 ' & # x00E4;' (0xE4 값) 문자 집합이 있지만 문자에서 'ä' 문자 'a' 사전순 앞.
에 대 한 문자 집합 및 lexicographic 문자 순서가 다른 로캘에서 사용 하 여 strxfrm 원래 문자열에 다음 strcmp lexicographic 문자열 비교는 현재 로케일에 따라 생성 하는 결과 문자열에 LC_COLLATE 범주 설정 합니다.따라서 위의 로케일에서 사전순 두 문자열을 비교 하는 데 사용할 strxfrm 하 여 원래 문자열을 다음에 strcmp 결과 문자열에.또는 사용할 수 있습니다 strcoll 대신 strcmp 원래 문자열입니다.
strxfrm기본적으로입니다 LCMapString 와 LCMAP_SORTKEY.
데 필요한 배열 크기를 다음 식 값입니다 있는 strxfrm 원본 문자열의 변환:
1 + strxfrm( NULL, string, 0 )
만, "C" 로케일에서 strxfrm 다음과 같습니다:
strncpy( _string1, _string2, _count );
return( strlen( _string1 ) );
요구 사항
루틴 |
필수 헤더 |
---|---|
strxfrm |
<string.h> |
wcsxfrm |
<string.h> 또는 <wchar.h> |
_strxfrm_l |
<string.h> |
_wcsxfrm_l |
<string.h> 또는 <wchar.h> |
추가 호환성 정보를 참조 하십시오. 호환성 소개에서 합니다.
해당 .NET Framework 항목
해당 사항 없음. 표준 C 함수를 호출할 수 있습니다 PInvoke. 자세한 내용은 플랫폼 호출 예제.