C ++ में strxfrm () फ़ंक्शन किसी दिए गए नल समाप्त स्ट्रिंग को कार्यान्वयन परिभाषित रूप में बदल देता है।
THe strxfrm () फ़ंक्शन स्ट्रिंग को रूपांतरित करता है जैसे strcmp () फ़ंक्शन का उपयोग करके दो रूपांतरित स्ट्रिंग की तुलना करना, वर्तमान C लोकेल में strcoll () फ़ंक्शन का उपयोग करके मूल स्ट्रिंग्स की तुलना करने के समान परिणाम उत्पन्न करता है।
उदाहरण के लिए, x और y दो तार हैं। a और b दो x स्ट्रिंग्स हैं जो क्रमशः x और y को बदलकर स्ट्रैक्सफ्रेम फ़ंक्शन का उपयोग करते हुए बनते हैं। तब strcmp (a, b) के लिए कॉल strcoll (x, y) को कॉल करने के समान है।
strxfrm () प्रोटोटाइप
size_t strxfrm (char * dest, const char * src, size_t count);
Strxfrm () फ़ंक्शन स्ट्रिंग के पहले गणना वर्णों को src द्वारा एक कार्यान्वयन परिभाषित रूप में इंगित करता है और परिणाम को नियत स्मृति बिंदु में संग्रहीत किया जाता है।
इस फ़ंक्शन का व्यवहार अपरिभाषित है यदि:
- भाग्य का आकार आवश्यक आकार से कम है।
- भाग्य और src ओवरलैप।
इसे हेडर फ़ाइल "> हेडर फ़ाइल में परिभाषित किया गया है।
strxfrm () पैरामीटर
- dest: पॉइंटर को उस व्यूअर में जहां तब्दील स्ट्रिंग को संग्रहीत किया जाता है।
- src: पॉइंटर को null टर्मिनेटेड स्ट्रिंग टू ट्रांसफॉर्म किया जाना है।
- गिनती: वर्णों की अधिकतम संख्या परिवर्तित करने के लिए।
strxfrm () वापसी मान
Strxfrm () फ़ंक्शन समाप्त किए गए वर्ण की संख्या देता है, समाप्त करने वाले अशक्त वर्ण ' 0' को छोड़कर।
उदाहरण: strxfrm () फ़ंक्शन कैसे काम करता है?
#include #include #include using namespace std; int main() ( setlocale(LC_COLLATE, "cs_CZ.UTF-8"); const char* s1 = "hrnec"; const char* s2 = "chrt"; char t1(20), t2(20); cout << "strcoll returned " << strcoll(s1,s2) << endl; cout << "Before transformation, " << "strcmp returned " << strcmp(s1,s2) << endl; strxfrm(t1,s1,10); strxfrm(t2,s2,10); cout << "After transformation, " << "strcmp returned " << strcmp(t1,t2) << endl; return 0; )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
strcoll लौट आया -1 परिवर्तन से पहले, strcmp 1 लौटा। परिवर्तन के बाद, strcmp -1 लौट आया