_strlwr_s, _strlwr_s_l, _mbslwr_s, _mbslwr_s_l, _wcslwr_s, _wcslwr_s_l
Konwertuje ciąg na małe litery przy użyciu bieżących ustawień regionalnych lub obiekt ustawień regionalnych, który jest przekazywana.Te wersje _strlwr, _wcslwr, _mbslwr, _strlwr_l, _wcslwr_l, _mbslwr_l mają wzmocnienia zabezpieczeń, jak opisano w Funkcje zabezpieczeń w CRT.
Ważne |
---|
_mbslwr_s i _mbslwr_s_l nie można używać w aplikacjach korzystających ze środowiska wykonawczego systemu Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW. |
errno_t _strlwr_s(
char *str,
size_t numberOfElements
);
errno_t _strlwr_s_l(
char *str,
size_t numberOfElements,
_locale_t locale
);
errno_t _mbslwr_s(
unsigned char *str,
size_t numberOfElements
);
errno_t _mbslwr_s_l(
unsigned char *str,
size_t numberOfElements,
_locale_t locale
);
errno_t _wcslwr_s(
wchar_t *str,
size_t numberOfElements
);
errno_t _wcslwr_s_l(
wchar_t *str,
size_t numberOfElements,
_locale_t locale
);
template <size_t size>
errno_t _strlwr_s(
char (&str)[size]
); // C++ only
template <size_t size>
errno_t _strlwr_s_l(
char (&str)[size],
_locale_t locale
); // C++ only
template <size_t size>
errno_t _mbslwr_s(
unsigned char (&str)[size]
); // C++ only
template <size_t size>
errno_t _mbslwr_s_l(
unsigned char (&str)[size],
_locale_t locale
); // C++ only
template <size_t size>
errno_t _wcslwr_s(
wchar_t (&str)[size]
); // C++ only
template <size_t size>
errno_t _wcslwr_s_l(
wchar_t (&str)[size],
_locale_t locale
); // C++ only
Parametry
str
Ciąg przerwany wartością null do konwersji na małe litery.numberOfElements
Rozmiar buforu.locale
Ustawienia regionalne do użycia.
Wartość zwracana
Zero, jeśli operacja się powiedzie; kod błędu różny od zera w razie porażki.
Te funkcje sprawdzają poprawność swoich parametrów.Jeśli str nie jest prawidłowym ciągiem zakończonym znakiem null, obsługi nieprawidłowy parametr jest wywoływany, zgodnie z opisem w Sprawdzanie poprawności parametru .Jeśli wykonanie może być kontynuowane, funkcje zwracają EINVAL i ustawiają errno jako EINVAL.Jeśli numberOfElements jest mniejsza niż długość ciągu, funkcje zwracają również EINVAL i errno do EINVAL.
Uwagi
_strlwr_s Funkcja konwertuje, w miejscu, dowolne wielkie litery w str na małe litery._mbslwr_sjest to wersja wielobajtowego znaków _strlwr_s._wcslwr_s jest wersją szeroko charakter _strlwr_s.
Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_CTYPE ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji.Wersje tych funkcji, które nie mają przyrostka _l używają bieżących ustawień regionalnych dla wszelkich zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że w zamian korzystają z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.
W języku programowania C++ korzystanie z tych funkcji jest uproszczone przez przeciążania szablonu; przeciążania mogą automatycznie wywnioskować długość buforu (tak, aby nie było konieczne określenie argumentu rozmiaru), ponadto te funkcje mogą automatycznie zastąpić starsze, niezabezpieczone funkcje nowszymi, bardziej bezpiecznymi odpowiednikami.Aby uzyskać więcej informacji, zobacz Przeciążenia bezpiecznych szablonów.
Wersje debugowania tych funkcji najpierw wypełniają bufor 0xFD.Aby wyłączyć to zachowanie, użyj _CrtSetDebugFillThreshold.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE & _MBCS nie zdefiniowano |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tcslwr_s |
_strlwr_s |
_mbslwr_s |
_wcslwr_s |
_tcslwr_s_l |
_strlwr_s_l |
_mbslwr_s_l |
_wcslwr_s_l |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_strlwr_s, _strlwr_s_l |
<Ciąg> |
_mbslwr_s, _mbslwr_s_l |
<mbCiąg.h> |
_wcslwr_s, _wcslwr_s_l |
<ciągo.h> lub <wchar.h> |
Dodatkowe informacje o zgodności – zobacz: Zgodność.
Przykład
// crt_strlwr_s.cpp
// This program uses _strlwr_s and _strupr_s to create
// uppercase and lowercase copies of a mixed-case string.
//
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
int main()
{
char str[] = "The String to End All Strings!";
char *copy1, *copy2;
errno_t err;
err = _strlwr_s( copy1 = _strdup(str), strlen(str) + 1);
err = _strupr_s( copy2 = _strdup(str), strlen(str) + 1);
printf( "Mixed: %s\n", str );
printf( "Lower: %s\n", copy1 );
printf( "Upper: %s\n", copy2 );
free( copy1 );
free( copy2 );
return 0;
}
Odpowiednik w programie .NET Framework
Zobacz też
Informacje
Interpretacja wielobajtowych sekwencji znaków
_strupr_s, _strupr_s_l, _mbsupr_s, _mbsupr_s_l, _wcsupr_s, _wcsupr_s_l