प्रोग्रामिंग भाषाओं की तुलना (स्ट्रिंग फ़ंक्शंस)

स्ट्रिंग फ़ंक्शन का उपयोग कंप्यूटर प्रोग्रामिंग लैंग्वेजो में स्ट्रिंग (कंप्यूटर विज्ञान) में अदला बदली करने या स्ट्रिंग के बारे में जानकारी या क्वेरी करने के लियें दोनों में उपयोग किया जाता है।

इस प्रकार अधिकांश प्रोग्रामिंग लैंग्वेजो में स्ट्रिंग डेटा प्रकार में कुछ स्ट्रिंग फ़ंक्शन होते है, चूंकि स्ट्रिंग को सीधे संभालने के लिए प्रत्येक लैंग्वेज के भीतर अन्य निम्न-स्तरीय विधि भी होती है। जो ऑब्जेक्ट-ओरिएंटेड लैंग्वेजो में स्ट्रिंग फ़ंक्शंस को अधिकांशतः स्ट्रिंग ऑब्जेक्ट के गुणों और विधियों के रूप में कार्यान्वित करती है और जबकि कार्यात्मक और सूची-आधारित लैंग्वेजो में एक स्ट्रिंग को एक सूची करैक्टर कोड के रूप में दर्शाया जाता है और इसलिए सभी सूची अदला- बदली प्रक्रियाओं को स्ट्रिंग फ़ंक्शन के रूप में माना जा सकता है। चूंकि ऐसी लैंग्वेजो में स्पष्ट स्ट्रिंग-विशिष्ट फ़ंक्शंस के सबसेट को भी प्रयुक्त कर सकती हैं।

फ़ंक्शन के लिए जो स्ट्रिंग्स में अदला- बदली करता है, आधुनिक ऑब्जेक्ट-ओरिएंटेड लैंग्वेज, जैसे C # और जावा प्रोग्रामिंग लैंग्वेज में अपरिवर्तनीय स्ट्रिंग्स होती हैं और एक कॉपी को नई आवंटित गतिशील मेमोरी में रीटर्न करती है, जबकि अन्य, जैसे C प्रोग्रामिंग लैंग्वेज मूल स्ट्रिंग में अदला- बदली करता है, जब तक कि प्रोग्रामर डेटा को एक नई स्ट्रिंग में कॉपी नहीं करता है। उदाहरण के लिए नीचे कॉनकीटेनेशन में दर्शाया गया है।

इस प्रकार स्ट्रिंग फ़ंक्शन का सबसे मौलिक उदाहरण फ़ंक्शन है। यह फ़ंक्शन स्ट्रिंग की लंबाई को शाब्दिक रूप से रीटर्न करता है ।


 * . e.g.  would return 11.

अन्य लैंग्वेजो में समान या बिल्कुल समान सिंटेक्स या पैरामीटर परिणाम वाले स्ट्रिंग फ़ंक्शन होते हैं। उदाहरण के लिए, कई लैंग्वेजो में लंबाई फ़ंक्शन को सामान्यतः लेन (स्ट्रिंग) के रूप में दर्शाया जाता है। इस प्रकार सामान्य कार्यों की नीचे दी गई सूची का उद्देश्य इस कन्फ्यूश़न को सीमित करने में मदद करता है।

सामान्य स्ट्रिंग फ़ंक्शंस (बहु लैंग्वेज संदर्भ)
कई लैंग्वेजो में सामान्य रूप से उपयोग किए जाने वाले विभिन्न नामों सहित स्ट्रिंग फ़ंक्शंस नीचे सूचीबद्ध हैं। सामान्य फ़ंक्शंस की नीचे दी गई सूची का उद्देश्य प्रोग्रामर्स को किसी लैंग्वेज में समकक्ष फ़ंक्शन ढूंढने में मदद करता है। ध्यान दें, स्ट्रिंग संयोजन और नियमित एक्सप्रेशन को भिन्न -भिन्न पृष्ठों में प्रबंधित किया जाता है। उद्धरण चिह्न गुइलमेट्स में कथन (“… ») वैकल्पिक हैं।

इक्वलिटी
परीक्षण करते है कि क्या दो स्ट्रिंग बराबर हैं। #Compare और #Compare में जैसे दिखाया गया है। ध्यान दें कि इन्टिजर परिणाम के साथ सामान्य तुलना के माध्यम से इक्वलिटी जांच करना न केवल प्रोग्रामर के लिए भ्रमित करने वाला है, अपितु इस प्रकार यह बहुत अधिक महंगा ऑपरेशन है; इस प्रकार "सी-स्ट्रिंग्स" का उपयोग करते समय यह विशेष रूप से सच है।

फाइंड
उदाहरण
 * सामान्य लिस्प
 * C#
 * राकु
 * स्कीम
 * विसुअल बेसिक
 * स्माल टॉक
 * स्कीम
 * विसुअल बेसिक
 * स्माल टॉक
 * स्माल टॉक
 * स्माल टॉक

फाइंड करैक्टर
करैक्टर के एक सेट को देखते हुए, SCAN किये गए पहले करैक्टर की स्थिति रीटर्न करता है, जबकि VERIFY पहले करैक्टर की स्थिति रीटर्न करता है जो सेट से संबंधित नहीं है।

इन इक्वलिटी
यदि दो स्ट्रिंग बराबर नहीं हैं तो टेस्ट करते है। इस प्रकार #Equality में दिखाया गया है

इंडेक्स
देखें #Find

इंडेक्स ऑफ़
देखें #Find

इंस्ट्र
देखें #Find

इंस्ट्रेव

 * 1) देखें #rfind

lastindexof

 * 1) rfind देखें

लेन

 * 1) length देखें

लोकेट
देखें #Find

मिड

 * 1) substring देखें

स्लाइस

 * 1) substring देखें

स्प्रिंटफ़

 * 1) Format देखें

स्ट्रिप

 * 1) trim देखें

स्टर्कम्प

 * 1) Compare (integer result) देखें

ट्रिम
या का उपयोग किसी स्ट्रिंग के आरंभिक सिरे या शुरुआत और अंत दोनों से रिक्त स्थान को हटाने के लिए किया जाता है।

अन्य लैंग्वेज

बिना बिल्ट-इन ट्रिम फ़ंक्शन वाली लैंग्वेजो में, एक कस्टम फ़ंक्शन बनाना सामान्यतः सरल होता है जो समान कार्य को पूरा करता है।

एपीएल
एपीएल (प्रोग्रामिंग लैंग्वेज ) सीधे नियमित एक्सप्रेशन का उपयोग करता है वैकल्पिक रूप से, बूलियन मास्क को संयोजित करने वाला एक कार्यात्मक दृष्टिकोण जो अग्रणी और अनुगामी स्थानों को फ़िल्टर करता है। या दो बार रिवर्स और प्रमुख रिक्त स्थान हटाता है।

AWK
AWK में, कोई ट्रिम करने के लिए रेगुलर एक्सप्रेशन का उपयोग कर सकता है।

या:

सी/सी++
C या C++ में कोई मानक ट्रिम फ़ंक्शन नहीं होता है। इस प्रकार अधिकांश उपलब्ध स्ट्रिंग लाइब्रेरीज़ C के लिए कोड होता है, जो ट्रिमिंग के रूप में प्रयुक्त होता है या ऐसे फ़ंक्शन के रूप में प्रयुक्त होता है जो कुशल कार्यान्वयन को बहुत आसान बनाते हैं। कुछ गैर-मानक C पुस्तकालयों में फ़ंक्शन को अधिकांशतः ईटव्हाइटस्पेस भी कहा जाता है।

C में, प्रोग्रामर अधिकांशतः ट्रिम को प्रयुक्त करने के लिए एलट्रिम और आरट्रिम को जोड़ते हैं

ओपन सोर्स सॉफ्टवेयर C++ लाइब्रेरी को बूस्ट करते है और इस प्रकार कई ट्रिम वेरिएंट हैं, जिनमें एक मानक के रूप में सम्मलित होते है,

ध्यान दें कि बूस्ट के फ़ंक्शन का नाम  है इनपुट अनुक्रम को जगह-जगह संशोधित किया जाता है और कोई परिणाम नहीं रीटर्न करता है।

एक अन्य ओपन-सोर्स सॉफ़्टवेयर C++ लाइब्रेरी Qt (टूलकिट) के कई ट्रिम वेरिएंट हैं, जिनमें एक मानक के रूप में सम्मलित है

लिनक्स कर्नेल में एक स्ट्रिप फ़ंक्शन के रूप में सम्मलित है, ,2.6.18-rc1 के बाद से जो स्ट्रिंग को उसके स्थान पर ट्रिम करता है। 2.6.33-rc1 के बाद से, कर्नेल का उपयोग होता है   के अतिरिक्त  झूठी चेतावनियों से बचने के लिए होता है.

हास्केल
हास्केल (प्रोग्रामिंग लैंग्वेज ) में एक ट्रिम एल्गोरिदम होता है

इसकी व्याख्या इस प्रकार की जा सकती है, f पूर्ववर्ती रिक्त स्थान को हटा देता है और स्ट्रिंग को रिवर्स कर देता है। इस प्रकार f को फिर से अपने आउटपुट पर प्रयुक्त किया जाता है। ध्यान दें कि टाइप हस्ताक्षर (दूसरी पंक्ति) वैकल्पिक है।

जे
जे (प्रोग्रामिंग लैंग्वेज ) में ट्रिम एल्गोरिदम एक कार्यात्मक प्रोग्रामिंग विवरण है

यह फ़िल्टर नॉन स्पेस करैक्टर के लिए  अग्रणी के बीच  और  अनुगामी  रिक्त स्थान के रूप में होता है

जावास्क्रिप्ट
जावास्क्रिप्ट 1.8.1 फ़ायरफ़ॉक्स 3.5 और बाद के संस्करण और ईसीएमए स्क्रिप्ट 5 मानक में एक अंतर्निहित ट्रिम फ़ंक्शन के रूप में होता है। पहले के संस्करणों में इसे स्ट्रिंग ऑब्जेक्ट के प्रोटोटाइप में निम्नानुसार जोड़ा जा सकता है

पर्ल
पर्ल 5 में कोई अंतर्निहित ट्रिम फ़ंक्शन नहीं होता है । चूंकि, कार्यक्षमता सामान्यतः नियमित एक्सप्रेशन का उपयोग करके प्राप्त की जाती है।

उदाहरण इस प्रकार है, या: ये उदाहरण मूल चर के .मान को संशोधित करते हैं

पर्ल के लिए StripLTSpace भी उपलब्ध है  सीपीएएन के रूप में होते है.

चूंकि,  और  :दो फ़ंक्शन हैं जिनका उपयोग सामान्यतः स्ट्रिंग के अंत से रिक्त स्थान को हटाने के लिए किया जाता है
 * किसी स्ट्रिंग से अंतिम अक्षर हटाता है और उसे रीटर्न करता है ।
 * यदि प्रस्तुत है तो स्ट्रिंग से पिछली न्यूलाइन करैक्टर को हटा देता है। एक नई पंक्ति का गठन $INPUT_RECORD_SEPARATOR पर निर्भर करता है।

राकू (प्रोग्रामिंग लैंग्वेज ) में, पर्ल की आगामी सिस्टर लैंग्वेज स्ट्रिंग्स में एक  विधि होती है।

उदाहरण:

टी.सी.एल
टीसीएल  कमांड में तीन प्रासंगिक उपकमांड ,   और  .के रूप में होते है, उन कमांड में से प्रत्येक के लिए एक अतिरिक्त तर्क निर्दिष्ट किया जाता है: एक स्ट्रिंग जो हटाने के लिए करैक्टर के एक सेट का प्रतिनिधित्व करती है वह डिफ़ॉल्ट व्हाइटस्पेस, स्पेस, टैब, न्यूलाइन, कैरिज रिटर्न करती है।

वॉवेल्स को ट्रिम करने का उदाहरण इस प्रकार है।

एक्सएसएलटी
एक्सएसएल परिवर्तन में फ़ंक्शन के रूप में सम्मलित है जो किसी भी रिक्त स्थान अनुक्रम (लाइन ब्रेक सहित) को एक ही स्थान से बदलने के अतिरिक्त, अग्रणी और अनुगामी रिक्त स्थान को हटा देता है।

उदाहरण: XSLT 2.0 में नियमित एक्सप्रेशन के रूप में सम्मलित है, जो स्ट्रिंग ट्रिमिंग करने के लिए एक और मैकेनिज्म प्रदान करती है।

ट्रिमिंग के लिए एक अन्य XSLT प्रौद्योगिकी XPath 2.0 फंक्शन का उपयोग करता है।