I was looking for this on internet and in every place with the functions of string.h these two are not mentioned.
Is because what? They aren't in every compiler?
They are non-standard functions from Microsoft's C library. MS has since deprecated them in favor of renamed functions _strlwr()
and _strupr()
:
strlwr()
docstrupr()
docNote that the MS docs claim they are POSIX functions, but as far as I can tell they never have been.
If you need to use them on a non-MS toolchain, they're easy enough to implement.
char* strlwr(char* s)
{
char* tmp = s;
for (;*tmp;++tmp) {
*tmp = tolower((unsigned char) *tmp);
}
return s;
}
These functions are not C standard functions. So it is implementation-defined whether they are supported or not.
These functions are not standard, and in fact their signatures are broken/non-usable. You cannot case-map a string in-place in general, because the length may change under case mapping.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With