एक स्ट्रिंग को लोअर-केस (बिना बिल्ट-इन-लोअर फ़ंक्शन के बिना) में परिवर्तित करना!


25

इस कोड-गोल्फ का लक्ष्य एक ऐसा कोड बनाना है जो उपयोगकर्ता इनपुट को ASCII स्ट्रिंग देता है (जिसमें केवल मुद्रण योग्य ASCII वर्ण होते हैं ), और आपका प्रोग्राम इस स्ट्रिंग के लोअर-केस वेरिएंट को आउटपुट करता है।

महत्वपूर्ण: आपको एक अंतर्निहित फ़ंक्शन का उपयोग करने की अनुमति नहीं है जो स्ट्रिंग (या सिर्फ एक चरित्र) को लोअरकेस (जैसे ToLower().NET, strtolower()PHP, ...) में कनवर्ट करता है ! हालाँकि आपको अन्य सभी अंतर्निहित कार्यों का उपयोग करने की अनुमति है।

एक और महत्वपूर्ण नोट: इनपुट स्ट्रिंग में केवल बड़े अक्षर नहीं हैं । इनपुट स्ट्रिंग अपरकेस वर्ण, लोअरकेस वर्ण, संख्या और अन्य ASCII मुद्रण योग्य वर्णों का मिश्रण है।

सौभाग्य!


4
दुर्भाग्य से, मुझे ऑप्ट-आउट करना होगा। मैं शुरुआती नहीं हूं।
जॉन ड्वोरक

@ जान: शुरुआत के साथ, मेरा वास्तव में मतलब था कि इसका कौशल स्तर 'शुरुआती' होगा, न कि केवल शुरुआती लोगों को प्रवेश करने की अनुमति होगी। मैंने 'शुरुआती' शब्द हटा दिया और निश्चित रूप से, आपको प्रवेश करने की अनुमति है।
प्रोग्रामऑफ

1
क्या नियमित अभिव्यक्ति की अनुमति है? केवल गोल्फस्क्रिप्ट ही हरा सका s/./\L\0/g
मैनटवर्क

3
@ \Lनिर्माण : निश्चित रूप से में बनाया गया है?
मारिनस

@manatwork: हाँ, एक रेगेक्स की अनुमति है।
प्रोग्राम फॉक्स

जवाबों:


21

शैल - १०

@ गौतम के पर्ल समाधान का अनुवाद /bin/tr

tr A-Z a-z

नमूना रन:

% tr A-Z a-z <<<'Hello WORLD! @'
hello world! @

यह क्या स्वीकार किए जाते हैं जवाब, जिज्ञासा से बाहर? गौथम का 10 वर्णों वाला समाधान पहले था ...
Ry-

1
मेटा पर चर्चा के आधार पर ऐसा लगता है कि तर्क यह है कि गौथम का समाधान 11 वर्ण है (क्योंकि -pध्वज एक पर गिना जाता है)। मैं हालांकि सहमत हूँ, अपने लगता है इसे और अधिक योग्य है की तरह स्वीकार करने के लिए ..
जुगनू

आह, धन्यवाद - जो समझ में आता है। मैं इसे याद रखूंगा!
Ry-

53

पायथन 2.7 - 30 (भयानक और अप्रसिद्ध नियम के दुरुपयोग के साथ)

raw_input().upper().swapcase()

अनाम संपादन के रूप में, आप इसे अंदर कर सकते हैं 27अजगर 3 में 26 :

input().upper().swapcase()

मैं यहाँ नियमों का दुरुपयोग कर रहा हूँ, लेकिन ...

महत्वपूर्ण: आपको एक अंतर्निहित फ़ंक्शन का उपयोग करने की अनुमति नहीं है जो स्ट्रिंग (या सिर्फ एक चरित्र) को लोअरकेस (जैसे ToLower().NET, strtolower()PHP, ...) में कनवर्ट करता है ! हालाँकि आपको अन्य सभी अंतर्निहित कार्यों का उपयोग करने की अनुमति है।

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


1
अजगर 3 समाधान 26 वर्ण है।
टाइमटेक

@Timtech मैं गिन नहीं सकता।

1
यह सिर्फ असंबंधित नहीं है। यह बहुत असंबंधित है।
कार्टर पपी

1
पाठों का सामना करते समय इसके अजीब परिणाम होंगे जिनमें वर्ण when होते हैं।
FUZxxl

33

पर्ल - 11 10 वर्ण।

y/A-Z/a-z/

y///वैसा ही है tr///!

कार्रवाई में:

% perl -pe 'y/A-Z/a-z/' <<< 'Hello @ WORLD !'
hello @ world !

3
+1, एकमात्र वास्तविक जीवन की भाषा के लिए जो सभी कम (?) वास्तविक लोगों को हरा देती है।
बेहरोज़

दरअसल वह 11 अक्षर का है। -pविकल्प के रूप में 1. में गिना जाता है
manatwork

@manatwork या इसे 2: -और p:) के रूप में गिना जाना चाहिए
गौतम

1 यदि आप मानते हैं -e( perl -e-> perl -pe), 3 यदि आप एक स्क्रिप्ट ( perl-> perl -p) मान लेते हैं ।
nyuszika7h

10

बेगुंजे -98 - 26 22 21 19

~:''-d2*/1-!' *+,#@

तथ्य यह है कि पर निर्भर करता है (c-39)/26है 1को केवल बड़े ASCII वर्ण (पूर्णांक विभाजन कल्पना करते हुए) के चरित्र कोड के लिए। प्रत्येक वर्ण के लिए c, प्रिंट आउट लें c + (((c-39)/26)==1)*' '

नमूना सत्र:

% cfunge lower.b98
hello WORLD!
hello world!
This is a TEST!!11 az AZ @[`{
this is a test!!11 az az @[`{

9

पायथन 3, 58

print("".join(chr(ord(x)+('@'<x<'[')*32)for x in input()))

क्या आप बता सकते हैं कि यह कैसे काम करता है? मैं वास्तव में पायथन में बेहतर होने के लिए इच्छुक हूं। मुझे नहीं पता कि map(ord,input())बिट कैसे काम करता है।
एस्टरी

1
@JeffGohlke: mapएक अंतर पर एक फ़ंक्शन (इस मामले में ord) को लागू करता है और एक पुनरावृत्ति देता है। यह एक छोटे रूप की तरह है (ord(x) for x in input())
Ry-

समझ गया। स्पष्टीकरण के लिए धन्यवाद!
एस्ट्री

1
आपका उत्तर प्रश्न की भावना का अनुसरण करता है , लेकिन मेरा प्रश्न पत्र का अनुसरण करता है ...

बहुत अच्छा। मेरी अनपोस्टेड 62 लंबाई समाधान मारो for c in input():print([c,(chr(ord(c)+32))]['@'<c<'['],end='')। मैंने map(ord,input())ट्रिक के साथ कुछ करने की कोशिश की , लेकिन सत्य मान को 32 से गुणा करने और वर्ण कोड ट्रिक में जोड़ने से चूक गया। बहुत अच्छा।
स्टीवन रूंबल्स्की

8

रूबी, 18 अक्षर

वास्तव में कुछ भी दिलचस्प नहीं है।

gets.tr'A-Z','a-z'

(आईआरबी में चलाएं)

सिर्फ मनोरंजन के लिए: एक भ्रामक संस्करण:

$,=$* *' ';$;=$,.tr'A-Z','a-z';$><<$;

इस तरह से चलाएं:

c:\a\ruby>lowercase.rb Llamas are AMAZING!

उत्पादन

llamas are amazing!

7

जे - 30

'@Z'(]+32*1=I.)&.(a.&i.)1!:1]1

J को दाएं-बाएं पढ़ा जाता है, इसलिए इसे नीचे तोड़ने के लिए:

  1. इनपुट के लिए शीघ्र उपयोगकर्ता: 1!:1]1
  2. कोड-पॉइंट-स्पेस में एल्गोरिदम का प्रदर्शन करें: &.(a.&i.)
  3. प्रत्येक अक्षर के लिए वर्ण सीमा की पहचान करें; कोडपॉइंट "@" और "Z" के अक्षरों को अपरकेस माना जाता है 1=I.:।
  4. प्रत्येक अपरकेस कोड बिंदु के लिए, 32 जोड़ें: ]+32* ...
  5. ध्यान दें कि चरण (2) एक अंतर्निहित कदम (5) बनाता है: हमने वर्ण से पूर्णांक डोमेन तक प्रोजेक्ट करके शुरू किया था, इसलिए अब जब हम समाप्त हो गए हैं, हम उन पूर्णांकों को वर्णों पर वापस मैप करते हैं।

जाहिर है कि यह विशेष कार्यान्वयन केवल ASCII को मानता है; लेकिन यूनिकोड में कम से कम बुनियादी बहुभाषी विमान के लिए दृष्टिकोण बढ़ाया जा सकता है।


1
अच्छा! दुर्भाग्य से, ऐसा लगता है कि आपका समाधान गलत हो रहा है। ;-) एक आसान तय हालांकि होना चाहिए। (संपादित करें: '@Z'(]+32*1=I.)&.(a.&i.)1!:1]1इसे करना चाहिए)
फायरफली

अच्छी पकड़, धन्यवाद। मैं यह भी प्रभावित हूँ कि आप स्वयं कोड को ठीक करने में सक्षम थे: J वहाँ से सबसे अधिक सुलभ भाषा नहीं है :)
Dan Bron

आह, मैंने खुद के साथ कुछ के आसपास खेला है .. मैं साथ आने में कामयाब रहा u:(a.i.x)+32*1='@Z'I.x=.1!:1]1, जो आपकी लंबाई से मेल खाता है लेकिन बहुत कम दिलचस्प है (क्योंकि यह 'अंडर' का उपयोग नहीं करता है)। जिसमें से, मैं dyadic के बारे में पता नहीं था I., इसलिए उस का उपयोग करने के लिए धन्यवाद। :-)
फायरफली

ठंडा। लेकिन आपके Befunge solution ने अभी भी J को 4 वर्णों से हराया है। जाहिर है मैं उस स्टैंड को नहीं दे सकता :) मैं यह देखने की कोशिश कर रहा हूं कि क्या '@' और 'जेड' दोनों के बजाय पूरी तरह से '@' पर निर्भर रहने में आपकी लीड का पालन करते हुए जे सॉल्यूशन को ट्रिम किया जाए।
डैन ब्रॉन

(32(23)b.])&.(3&u:), 5 बाइट्स कम होनी चाहिए।
FrownyFrog

7

C 64 63 59 55 वर्ण

main(c){while(c=getchar(),~c)putchar(c-65u<27?c+32:c);}

मैं वहां केवल 63 अक्षर गिनता हूं।
मैनटवर्क

आप 9 अक्षर खो सकते हैं: ड्रॉप int और ,c>=0। वे यहाँ आवश्यक नहीं हैं।
जोफिश 18

हमें सी> = 0 की आवश्यकता है क्योंकि गेटचेयर (ईओएफ) होगा <0. अन्य सुझाव के लिए धन्यवाद।
रोजुआर

2
1. ~(c=getchar())2.c-64u<27
बदसूरत

1
नगण्य रूप से छोटा बग: लगता है कि 64 की बजाय 65 होना चाहिए। pastebin.com/Zc9zMx2W
manatwork

5

गोल्फस्क्रिप्ट - 17

कार्यक्रम:

{..64>\91<*32*+}%

स्पष्टीकरण:

  1. {}% स्ट्रिंग में हर वर्ण के अंदर कोड को मैप करता है।
  2. .. स्टैक के शीर्ष (चरित्र) को दो बार कॉपी करता है।
  3. 64> 1 यदि वर्ण कोड 64 से अधिक है, तो 0।
  4. \स्टैक पर दो आइटम स्वैप करता है (पत्र की दूसरी प्रति प्राप्त करता है, और 64>स्थिति दो के परिणाम को संग्रहीत करता है )।
  5. 91< यह देखने के लिए कि क्या वर्ण कोड 91 से कम है, चरण 3 के समान है।
  6. *चरण 3 और 5 से परिणाम को एक साथ गुणा करता है। केवल 1 के बराबर, यदि दोनों चरण सत्य थे।
  7. 32* चरण 6 के परिणाम को 32 के साथ गुणा करता है। यदि चरण 6 1 था, तो 32 होगा, 0 होगा।
  8. + चरित्र कोड पर परिणाम (या तो 32 या 0) जोड़ें।

उदाहरण आउटपुट:

echo HelLO @ WorLD | ruby golfscript.rb upper_to_lower.gs
hello @ world

4

पर्ल: 24 अक्षर

s/[A-Z]/chr 32+ord$&/ge

नमूना रन:

bash-4.1$ perl -pe 's/[A-Z]/chr 32+ord$&/ge' <<< 'Hello @ WORLD !'
hello @ world !

हेम, क्यों chr ord? मुझे पूरा यकीन है कि आप मेरे जवाब को पढ़ने में कुछ नहीं सीखेंगे ;-)
F. Hauri

कमाल की ट्रिक, @ F.Hauri!
18

@ nyuszika7h, +1 -pकमांड लाइन पैरामीटर है, न कि एक नई रेखा।
manatwork

ओह ठीक है, क्षमा करें।
nyuszika7h

3

पायथन (33)

यदि संदेह है, तो शेल का उपयोग करें।

import os;os.system('tr A-Z a-z')

अफसोस, यह लेगो के समाधान से अभी भी लंबा है।


+1 यह वास्तव में एक पायथन नहीं है, जिसमें आप उपयोग कर रहे हैं। केवल लिनक्स पर काम करता है, लेकिन फिर भी बहुत नियम-बेंडि !!!

@LegoStormtroopr हर जगह काम करता है tr(जो सही काम करता है) आह्वान किए गए शेल के रास्ते पर, मुझे लगता है।
पाओलो एबरमन

3

डेल्फी

const
  UpChars:set of AnsiChar = ['A'..'Z'];
var
  I: Integer;
begin
  SetLength(Result, Length(pString));
  for I := 1 to length(pstring) do
    Result[i] := AnsiChar((Integer(pString[i] in UpChars))*(Ord(pString[i])+32));
  WriteLn(Result);
end;

3
यह गोल्फ नहीं है। क्या आपको नहीं लगता कि यह टुकड़ा दूसरों की तुलना में बहुत अलग है?
रे

1
@ray Golfing आपके कोड को यथासंभव छोटा करने के बारे में है। डेल्फी गोल्फ के लिए एक महान भाषा नहीं है। मैं खुद डेल्फी का उपयोग करता हूं और भले ही एक बड़ा मौका नहीं है लेकिन मैं डेल्फी के साथ एक गोल्फ जीत सकता हूं, फिर भी खुद को चुनौती देने के लिए यह मजेदार है।
त्यूं प्रैंक

3

जावास्क्रिप्ट - 109 104 (ES6: 95)

सही संस्करण के लिए कुछ के लिए धन्यवाद।

a=prompt();for(b=[i=0];c=a.charCodeAt(i);)b[i++]=String.fromCharCode(c|(c>64&c<91)*32);alert(b.join(""))

यदि ब्राउज़र ES6 फंक्शन एक्सप्रेशन का समर्थन करता है तो निम्नलिखित कार्य करता है:

alert(prompt().split("").map(c=>String.fromCharCode(c.charCodeAt()|(c>"@"&c<"[")*32)).join(""))

पहला कोड काम नहीं करता है (एफएफ और क्रोम में परीक्षण) क्योंकि जब स्ट्रिंग की लंबाई के बाद एक चरित्र प्राप्त करने की कोशिश की जाती है, तो आप प्राप्त करते हैं undefinedऔर फिर c.charCodeAt()असफल हो जाते हैं क्योंकि अपरिभाषित नहीं होते हैं charCodeAt। एक कामकाजी उदाहरण 105 वर्ण:a=prompt();for(b=[i=0];c=a.charCodeAt(i);)b[i++]=String.fromCharCode(c|(c>64&&c‌​<91)*32);alert(b.join(''))
कुछ

@ कुछ उफ़, मुझे आश्चर्य है कि मैं उस स्निपेट के साथ कैसे आया .. मुझे पूरा यकीन है कि मैंने उस कोड का परीक्षण किया है, हो सकता है कि मैंने एक गैर-कार्यशील संस्करण की नकल की हो। वैसे भी, सुधार के लिए धन्यवाद।
FireFly

andएक तार्किक एक के बजाय एक बिटवाइस का उपयोग करना ... अच्छा!
कुछ

एक और भी ES6 समाधान ( 79 ) L=s=>[String.fromCharCode(c.charCodeAt()|(c>"@"&c<"[")*32)for(c of s)].join(''):। उपयोग:L('SoMeTeXt')
फ्लोरेंट

अच्छा! मैं इसे एक मात्र समारोह बनाने के बारे में निश्चित नहीं हूं, हालांकि, अन्य सभी समाधान "उचित" कार्यक्रम हैं। फिर भी, बहुत अच्छा उपयोग की for..ofपरवाह किए बिना।
FireFly

3

पर्ल 18

s/[A-Z]/$&|" "/eg

कुछ इस तरह:

perl -pe 's/[A-Z]/$&|" "/eg'  <<<'are NOT allowed to: ToLower() in .NET, strtolower() in PHP'
are not allowed to: tolower() in .net, strtolower() in php

तथा

perl -pe 's/[A-Z]/$&|" "/eg' <<< "The input string Doesn't cOntaIn...( C0D3-@01F. ;-)"
the input string doesn't contain...( c0d3-@01f. ;-)

के लिए @FireFly :

perl -pe 's/[A-Z]/$&|" "/eg' <<< "Doesn't this translate @ to \` and [\]^_ to {|}~DEL? "
doesn't ... @ to ` and [\]^_ to {|}~del? 

नहीं।

अधिक सामान्य: वैसे भी 18 वर्ण:

s/[A-Z]/$&|" "/eg

s/[A-Z]/$&^" "/eg

यह राज्य में कुछ भी बदलाव नहीं करेगा:

perl -pe 's/[A-Z]/$&^" "/eg' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
doesn't ... @ to ` and [\]^_ to {|}~del? 

सभी ठीक काम करते हैं, लेकिन (xor) |द्वारा बदलने (या) का लाभ ^यह है कि एक ही वाक्यविन्यास का उपयोग किया जा सकता है toLower, toUpperया swapCase:

toupper:

perl -pe 's/[a-z]/$&^" "/eg' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
DOESN'T ... @ TO ` AND [\]^_ TO {|}~DEL? 

और स्वेपसेज़ (18 + 1 = 19 वर्ण) :

perl -pe 's/[a-z]/$&^" "/egi' <<< "Doesn't ... @ to \` and [\]^_ to {|}~DEL? "
dOESN'T ... @ TO ` AND [\]^_ TO {|}~del? 

मैं -pसॉरी के लिए +1 भूल गया @manatwork
F.

क्या यह @बैकटिक और [\]^_टू ट्रांसलेट नहीं है {|}~DEL? और इसमें मुश्किल हिस्सा है ..
FireFly

1
@FireFly नहीं, $&मैच करना है [A-Z]
एफ। होरी

मेरी गलती है। बहुत मस्त, फिर!
फायरफली

3

जावास्क्रिप्ट 80

"X".replace(/[A-Z]/g,function($){return String.fromCharCode($.charCodeAt()+32)})

(76 यदि आप निकालते हैं "X")

के साथ promptऔर alert- 92

alert(prompt().replace(/[A-Z]/g,function($){return String.fromCharCode($.charCodeAt()+32)}))

बेला

@FireFly @some @ C5H8NNOO4 और @minitech को धन्यवाद


एर, आप के लिए दूसरा तर्क रैप करने के लिए आवश्यकता होगी replaceके साथ function($){return ...}, नहीं? वैसे, रिप्लेसमेंट फंक्शन का पहला पैराम मैचिंग स्ट्रिंग है, जिससे आप रेगेक्स में पैरेंस को गिरा सकते हैं।
FireFly

मैं इसे चलाने के बारे में कैसे जाऊंगा, इस तरह से?
C5H8NNOO4

@ C5H8NNaO4 str (यहां कोड)
मैथ चिलर

6
मुझे लगता है कि सभी (या कम से कम सबसे) उत्तर यहां स्टड और प्रिंट से स्टडआउट तक पढ़े गए हैं। मैं क्या इकट्ठा से सम्मेलन उपयोग करने के लिए है promptऔर alertजे एस में आई / ओ के लिए।
FireFly

1
/gइसे ठीक से काम करने के लिए आपको एक ध्वज की आवश्यकता है ।
रय।

2

आर

71 वर्ण:

chartr(paste(LETTERS,collapse=""),paste(letters,collapse=""),scan(,""))

83 वर्ण:

a=as.integer(charToRaw(scan(,"")))
b=a%in%(65:90)
a[b]=a[b]+32
rawToChar(as.raw(a))

वह 86वर्ण है - newlines 2 वर्णों के रूप में गिना जाता है। ( string-functions.com/length.aspx )
टाइमटेक

@Timtech: आर में आप कोड में नए अक्षरों को प्रतिस्थापित कर सकते हैं, ;इसलिए नहीं, वे केवल एक चरित्र के लिए गिनती करते हैं। यह लिखा जा सकता है:a=as.integer(charToRaw(scan(,"")));b=a%in%(65:90);a[b]=a[b]+32;rawToChar(as.raw(a))
plannapus

हाँ, अब मुझे एहसास हुआ। मैं मेटा पर पढ़ता हूं ... ऐसा लगता है कि केवल विंडोज पर ही नई वर्णमाला 2 वर्ण हैं (मैं अपने कोड की लंबाई को मापने के लिए एक कार्यक्रम का उपयोग कर रहा था)।
टाइमटेक



2

PHP (42)

कमांड लाइन से चलाएं:

-R'echo@str_ireplace($a=range(a,z),$a,$argn);'

-R और एकल उद्धरणों की गणना नहीं की जाती है।


यदि आप गौतम के पील समाधान का पालन करते हैं, तो आप केवल 42 अक्षरों की गिनती करेंगे।
आईसबर्ग

1
@ आइसबर्ग: किसी भी विवाद के मामले में इतिहास में एक 43-चरित्र संस्करण छोड़कर स्कोर अपडेट किया गया।
कृप्या

str_ireplaceकेस असंवेदनशील खोज करता है, जो नियमों को तोड़ रहा है, अगर उन्हें नहीं तोड़ रहा है।
ugoren

@ यूगोरेन मुझे ऐसा नहीं लगता। जैसा कि यह स्पष्ट रूप से कहा गया है कि केवल बिल्ड इन फंक्शन चेंजिंग केस की अनुमति नहीं है और यह इस मामले को न बदलने की अनदेखी कर रहा है।
आईसबर्ग

2

पॉवरशेल: 69 65 64

मैंने लंबे [regex]::Replaceसिंटैक्स का उपयोग किए बिना इसे जिस तरह से काम करना चाहता हूं उसे बदलने के लिए आधा दर्जन तरीकों की कोशिश की है , लेकिन मुझे कोई भाग्य नहीं मिला है। अगर किसी और को इस बात का अंदाजा है कि वह क्या काम कर सकता है, तो कृपया उसे सुझाव दें।

गोल्फ कोड:

[regex]::Replace((read-host),"[A-Z]",{[char](32+[char]"$args")})

मूल से परिवर्तन:

  • पिछली दलील का खंडन किया गया है, जिसकी [int]अब जरूरत नहीं है, टिप्पणियों में सुझाव के अनुसार।

स्पष्टीकरण:

(read-host) उपयोगकर्ता इनपुट प्राप्त करता है।

[regex]::Replace(... )एक स्ट्रिंग पर प्रतिस्थापन संचालन करने के लिए RegEx मिलान का उपयोग करने के लिए PowerShell को बताता है।

"[A-Z]" सभी बड़े अक्षरों से मेल खाता है।

{... }प्रतिस्थापन मान निर्धारित करने के लिए किसी स्क्रिप्ट का उपयोग करने के लिए PowerShell को बताता है।

[char]"$args" वर्तमान मैच लेता है और इसे ASCII वर्ण के रूप में टाइप करता है।

32+ वर्ण को एक पूर्णांक में रूपांतरित करता है, ASCII कोड का प्रतिनिधित्व करता है, और मान को 32 से बढ़ाता है - जो संगत लोअरकेस अक्षर के ASCII कोड से मेल खाता है।

[char](... )परिणामी मूल्य लेता है और इसे वापस ASCII वर्ण में परिवर्तित करता है।

मूल का डेमो:

यहाँ छवि विवरण दर्ज करें

(वर्तमान संस्करण का परीक्षण किया गया - स्क्रीनशॉट अभी तक पोस्ट नहीं किया गया है।)


1
कि चारों ओर पाने के लिए पर जाँच नहीं की है [regex]::Replace, लेकिन आप को बदलने के द्वारा 4 वर्ण बचा सकते हैं [int]करने के लिए+
goric

1
वास्तव में, पूरे अंतिम तर्क को पुनर्व्यवस्थित किया जा सकता है {[char](32+[char]"$args")}, जो स्पष्ट रूप से इंट को स्पष्ट रूप से डालने की आवश्यकता को दूर करता है और एक और चरित्र को हटा देता है
गोरिक

@ भगवंत जी, मैंने पहले ही क्यों नहीं सोचा? अभी भी सीख रहा हूं, मुझे लगता है।
इज़्ज़ी

2

k2, 15 बाइट्स

मैं इस एक के लिए सुपर लेट हूं, लेकिन मुझे यह अच्छा लगा।

{_ci 32+_ic x}'

इसके अलावा:

अजगर, 10 बाइट्स

वास्तव में गिनती नहीं है क्योंकि यह पोस्ट किए जाने के बाद Pyth बनाया गया था। फिर भी मस्त।

jkmC+32Cdw

2

05AB1E , 3 बाइट्स

u.š

पोर्ट ऑफ @ user8777 पायथन 3 उत्तर

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

u    # Convert the (implicit) input to uppercase
   # Switch the case (upper to lower and vice-versa)
     # (and output the result implicitly)

लेकिन बिना किसी केस-परिवर्तन के निर्मित भवन:

05AB1E , 12 11 बाइट्स

ÇIS.u32*+çJ

-1 बाइट @ इग्निना के लिए धन्यवाद ।

इसे ऑनलाइन आज़माएं।

स्पष्टीकरण:

Ç            # Get the unicode values of each character of the (implicit) input-String
 IS          # Get the input-string, split to characters again
   .u        # Check for each if it's uppercase or not (1 if truthy; 0 if falsey)
     32*     # Multiply that result by 32 (32 if truhy; 0 if falsey)
        +    # Add it to all the unicode values at the same indices in the list
         ç   # Convert the now modified unicode values back to characters
          J  # And join all characters together to a string again
             # (which is output implicitly as result)

1
ÇIS.u32*+çJअपने 12-बाइट संस्करण पर एक बाइट बचाता है।
एमिगा

@Eigna आह, स्मार्ट। मैंने .u32*+इस तरह दृष्टिकोण की कोशिश की थी : εÇy.u32*+ç]Jलेकिन दुर्भाग्य çसे एक सूची में पात्रों को लपेटता है, इसलिए .. के Jबाद एक अतिरिक्त या `की आवश्यकता थीç
केविन क्रूज़सेन

1

जावास्क्रिप्ट, 105

prompt().split("").map(function(a){c=a.charCodeAt(0);return String.fromCharCode(c|(c-64?32:0))}).join("")

वास्तव में कोई आउटपुट निर्दिष्ट नहीं था, इसलिए इसे कंसोल में चलाएं Yea, JavaScript वास्तव में charcode के साथ क्रिया है <-> स्ट्रिंग


1
c.charCodeAt()- 0यदि कोई इंडेक्स छोड़ दिया जाता है तो यह चूक जाता है। इसके अलावा, '' @ '' पर मुझे विश्वास है कि (यह '' बैककिक में '' उतारा जाता है) ''
फायरफाइली

@ फेयरली नाइस, धन्यवाद !, ठीक है मैं इसे ठीक करने
जाऊंगा


1

C # - 108

class P{static void Main(string[]a){foreach(var c in a[0])System.Console.Write(
(char)(c>64&&c<91?c+32:c));}}

सिर्फ विधि शरीर के लिए लगभग 70।

आउटपुट में LF / CR को शामिल करने के लिए 5 वर्ण जोड़ें:

class P{static void Main(string[]a){foreach(var c in a[0]+"\n")System.Console.Write(
(char)(c>64&&c<91?c+32:c));}}

एक LINQ संस्करण छोटा होगा:

class P{static void Main(string[]a){a[0].Any(c=>System.Console.Write(
(char)(c>64&&c<91?32+c:c))is P);}}

(१०३) .. इसके अलावा इसकी आवश्यकता है using System.Linq;(कुल: १२१)।



1

अजगर 3 - 70

ओपी के परिवर्तनों के लिए अद्यतन किया गया।

मैं पायथन नौसिखिया हूं, इसलिए किसी भी आलोचक का स्वागत है।

print("".join(chr(ord(c)+32) if 64<ord(c)<91 else c for c in input()))

मुझे क्षमा करें, मेरा कहना था कि आपको एक वर्ण पर एक से कम फ़ंक्शन का उपयोग करने की अनुमति नहीं है। प्रश्न अपडेट किया गया।
प्रोग्राम फॉक्स

1
कृपया मेरी हाल की टिप्पणी देखें : आपका कोड केवल तभी काम करता है जब इनपुट स्ट्रिंग में केवल बड़े अक्षर हों, लेकिन कृपया ध्यान दें कि इसमें अन्य ASCII वर्ण जैसे कि लोअरकेस वर्ण और संख्याएँ भी हैं।
ProgramFOX

ठीक है, जब मैं घर
पहुंचूंगा

@ProgramFOX अपडेट किया गया।
एस्टरी

जेफ, @minitechs जवाब की जाँच करें । आप दोनों का दृष्टिकोण समान है इसलिए आपको यह देखने में सक्षम होना चाहिए कि उसका उत्तर कैसे और क्यों छोटा है।

1

पर्ल, 9 + 1 (-पी झंडा) = 10

$_="\L$_"

\L के बारे में विशेष रूप से पूछा गया और अनुमति दी गई, क्योंकि भले ही यह बिल्ट-इन हो, यह एक फ़ंक्शन नहीं है।


1

पॉवरशेल, 53 49 बाइट्स

-4 बाइट्स धन्यवाद @AdmBorkBork

-join($args|% t*y|%{[char](32*($_-in65..90)+$_)})

टेस्ट स्क्रिप्ट:

$f = {

-join($args|% t*y|%{[char](32*($_-in65..90)+$_)})

}

@(
    ,("Hello WORLD from PowerShell", "hello world from powershell")
) | % {
    $a,$e = $_
    $r = &$f $a
    "$($r-eq$e): $r"
}

आउटपुट:

True: hello world from powershell

ठंडा! ¯\_(ツ)_/¯
माज़ी

1

8086 मशीन कोड, 14 बाइट्स

इकट्ठे:

AC 3C 41 7C 06 3C 5A 7F 02 0C 20 AA E2 F2

अनुपलब्ध सूची:

 ; Lowercase a string
 ; Input: string: SI, length: CX
 ; Output: string: DI
 TOLOW  MACRO   
        LOCAL _LOOP, _STORE
       _LOOP:
 AC         LODSB           ; load byte from [SI] into AL, advance SI 
 3C 41      CMP  AL, 'A'    ; is char less than 'A'? 
 7C 06      JL   _STORE     ; if so, do not convert 
 3C 5A      CMP  AL, 'Z'    ; is char greater than 'Z'? 
 7F 02      JG   _STORE     ; if so, do not convert 
 0C 20      OR   AL, 020H   ; lowercase the char 
       _STORE:
 AA         STOSB           ; store char to [DI], advance DI 
 E2 F2      LOOP _LOOP      ; continue loop through string 

MACRO(अनिवार्य रूप से एक समारोह) के रूप में लागू किया गया । में इनपुट स्ट्रिंग SI, लंबाई में CX। में आउटपुट स्ट्रिंग DI

पीसी डॉस परीक्षण कार्यक्रम से आउटपुट:

यहाँ छवि विवरण दर्ज करें

डाउनलोड करें और TOLOW.COM उदाहरण कार्यक्रम का परीक्षण करें ।


14 बाइट की गिनती कहाँ से आ रही है? स्निपेट उस से अधिक लंबा है, यहां तक ​​कि टिप्पणियों के बिना भी ... संकलित कार्यक्रम 14 बाइट्स है?
योना

1
@Jonah बाइट ओपकोड बाएं स्तंभ में है AC 3C 41, आदि, मैं स्पष्टता के लिए शीर्ष पर कोडित हेक्स बाइट कोड जोड़ूंगा । codegolf.meta.stackexchange.com/a/12340/84624
640KB
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.