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

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

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

फ़ंक्शन के लिए जो स्ट्रिंग्स में अदला- बदली करता है, आधुनिक ऑब्जेक्ट-ओरिएंटेड लैंग्वेज, जैसे 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 देखें

rखोजें
 हेलो दोस्त .रिनडेक्स(ई); # रिटर्न 9 हेलो दोस्त .रिनडेक्स(ई, 4); # रिटर्न 1 शब्द .rindex('z'); # शून्य रीटर्न करता है 
 * 1) राकू में उदाहरण

सिंटैक्सहाइलाइट लैंग = वीबीनेट > 'विज़ुअल बेसिक में उदाहरण InStrRev (हैलो दोस्त, ई) '10 रीटर्न करता है InStrRev(5, हैलो दोस्त, ई) ' रिटर्न 2 InStrRev(शब्द, z) ' 0 रीटर्न करता है 

सही
 abcde .substr(*-3); # सीडीई रीटर्न करता है abcde .substr(*-8); # 'सीमा से बाहर' त्रुटि 
 * 1) राकू में उदाहरण

सिंटैक्सहाइलाइट लैंग = रेक्स > /* रेक्स में उदाहरण */ दाएँ (एबीसीडीई, 3) /* सीडीई रीटर्न करता है */ दाएँ (एबीसीडीई, 8) /* एबीसीडीई रीटर्न करता है */ दाएँ (एबीसीडीई, 8, *) /* रिटर्न ***एबीसीडीई */ 

सिंटैक्सहाइलाइट लैंग = योजना > (उपयोग-मॉड्यूल (srfi srfi-13)) (स्ट्रिंग-टेक-राइट एबीसीडीई, 3) ; सीडीई रीटर्न करता है (स्ट्रिंग-टेक-राइट एबीसीडीई, 8); गलती 
 * योजना में उदाहरण

सिंटैक्सहाइलाइट लैंग = वीबीनेट > 'विज़ुअल बेसिक में उदाहरण राइट (सैंड्रोगुइडी, 3) 'आईडीआई रीटर्न करता है राइट (सैंड्रोगुइडी, 100) ' सैंड्रोगुइडी रीटर्न करता है 

स्लाइस

 * 1) सबस्ट्रिंग देखें

विभाजित
 'स्पैम अंडे स्पैम स्पैम और हैम'.split(/spam/); # (स्पैम अंडे और हैम) स्प्लिट(/X/, 'स्पैम अंडे स्पैम स्पैम और हैम'); # (स्पैम अंडे स्पैम स्पैम और हैम) 
 * 1) राकू में उदाहरण

स्प्रिंटफ़

 * 1) प्रारूप देखें

पट्टी

 * 1) ट्रिम देखें

strcmp

 * 1) तुलना देखें (इन्टिजर परिणाम)

सबस्ट्रिंग
 एबीसी .substr(1, 1); # रिटर्न बी एबीसी .substr(1); # बीसी रीटर्न करता है 
 * 1) राकू में उदाहरण

सिंटैक्सहाइलाइट लैंग = पायथन > एबीसी [1:2] # रिटर्न बी एबीसी [1:3] # बीसी रीटर्न करता है 
 * 1) पायथन में उदाहरण

सिंटैक्सहाइलाइट लैंग = रेक्स > /* रेक्स में उदाहरण */ सबस्ट्र (एबीसी, 2, 1) /* रिटर्न बी */ सबस्ट्र (एबीसी, 2) /* रिटर्न बीसी */ सबस्ट्र (एबीसी, 2, 6) /* रिटर्न बीसी */ सबस्ट्र (एबीसी, 2, 6, *) /* रिटर्न बीसी**** */ 

अपरकेस
 यूसी (विकी का मतलब तेज़ है?); #विकी का मतलब तेज़? विकी का मतलब तेज़ है? .uc; #विकी का मतलब तेज़? 
 * 1) राकू में उदाहरण

सिंटैक्सहाइलाइट लैंग = रेक्स > /* रेक्स में उदाहरण */ अनुवाद (विकी का मतलब तेज़ है?) /*विकी का मतलब तेज़ है? */

/* उदाहरण #2*/ ए='यह एक उदाहरण है।' अपर ए/* यह एक उदाहरण है। */

/* उदाहरण #3 */ A='ऊपरी अनुवाद फ़ंक्शन का उपयोग कर रहा है।' ट्रांसलेट फ़ंक्शन का उपयोग करके अपर वर् ए जेड /* ज़ेड = अपर का अनुवाद करें। */ 

सिंटैक्सहाइलाइट लैंग = योजना > (उपयोग-मॉड्यूल (srfi srfi-13)) (स्ट्रिंग-अपकेस विकी का मतलब तेज़ है? ); विकी का मतलब तेज़ है? 
 * योजना में उदाहरण

सिंटैक्सहाइलाइट लैंग = वीबीनेट > 'विज़ुअल बेसिक में उदाहरण यूकेस (विकी का मतलब तेज़ है?) 'विकी का मतलब तेज़ है? 

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

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

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

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

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

या:

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

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

खुला स्रोत सॉफ्टवेयर C++ लाइब्रेरी लाइब्रेरी को बूस्ट करें  में कई ट्रिम वेरिएंट हैं, जिनमें एक मानक भी शामिल है:

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

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

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

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

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

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

वह है: फ़िल्टर गैर-अंतरिक्ष करैक्टर  के लिए  अग्रणी के बीच  और  अनुगामी  रिक्त स्थान.

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

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

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

पर्ल के लिए स्ट्रिपएलटीस्पेस भी उपलब्ध है  सीपीएएन से.

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

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

उदाहरण:  $स्ट्रिंग = $स्ट्रिंग.ट्रिम; # अग्रणी और अनुगामी रिक्त स्थान हटाएँ $स्ट्रिंग = ट्रिम; # एक ही बात 

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

स्वरों को ट्रिम करने का उदाहरण:

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

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

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