C++ <cstring> - strxfrm() Function
The C++ <cstring> strxfrm() function transforms a null-terminated byte string pointed to by src according to the current locale and copies the first num characters of the transformed string to dest, including the terminating null character, and the length of the full transformed string is returned, excluding the terminating null character.
If num is 0, then dest will be a null pointer. The behavior is undefined if dest and src overlap.
The behavior of the function depends on the LC_COLLATE category of the selected C locale.
Syntax
size_t strxfrm ( char * dest, const char * src, size_t num );
Parameters
dest |
Specify pointer to the first element of the array where the transformed string to be copied. |
src |
Specify pointer to the first character of a null-terminated byte string to transform. |
num |
Specify maximum number of characters to copy. size_t is an unsigned integer type. |
Return Value
Returns the length of the full transformed string, excluding the terminating null character.
Example:
The example below shows the usage of strxfrm() function.
#include <iostream> #include <clocale> #include <cstring> using namespace std; int main (){ char dest[20]; char src[20] = "Hello World"; //using LC_COLLATE of Minimal C locale setlocale(LC_COLLATE,"C"); //transforming src into dest int retval = strxfrm(dest, src, 20); //displaying the result cout<<"dest contains: "<<dest<<"\n"; cout<<"length of full transformed string: " <<retval<<"\n"; return 0; }
The output of the above code will be:
dest contains: Hello World length of full transformed string: 11
❮ C++ <cstring> Library