The c/c++ library strxfrm() transform the characters of source string into current locale and place them in destination string.
For that LC_COLLATE category is used which is defined in locale.h . strxfrm() function performs transformation in such a way that result of strcmp on two strings is the same as result of strcoll on two original strings.
Syntax:
size_t strxfrm(char *str1, const char *str2, size_t num); parameters: str1 :is the string which receives num characters of transformed string. str2 : is the string which is to be transformed num :is the maximum number of characters which to be copied into str1.
Examples :
Input : 'geeksforgeeks' Output : 13
// C program to demonstrate // strxfrm() #include <stdio.h> #include <string.h> int main() { char src[10], dest[10]; int len; strcpy (src, "geeksforgeeks" ); len = strxfrm (dest, src, 10); printf ( "Length of string %s is: %d" , dest, len); return (0); } |
OUTPUT:
Length of string geeksforgeeks is: 13
Example 2 :
Input : 'hello geeksforgeeks' Output : 20 // in this example it count space also
// C program to demonstrate // strxfrm() #include <stdio.h> #include <string.h> int main() { char src[20], dest[200]; int len; strcpy (src, " hello geeksforgeeks" ); len = strxfrm (dest, src, 20); printf ( "Length of string %s is: %d" , dest, len); return (0); } |
OUTPUT:
Length of string hello geeksforgeeks is: 20
Example 3 :
// C program to demonstrate // strxfrm() #include <iostream> #include <string.h> using namespace std; int main() { char str2[30] = "Hello geeksforgeeks" ; char str1[30]; cout << strxfrm (str1, str2, 4) << endl; cout << str1 << endl; cout << str2 << endl; return 0; } |
OUTPUT:
19 Hell Hello geeksforgeeks
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
leave a comment
0 Comments