2015-04-21 7 views
11

मान लीजिए मेरे पास एक स्ट्रिंग है जो "## ##"stdin में फॉर्म लेती है जिसे मैं पढ़ना चाहता हूं, उदा। "15 16"। यही कारण है कि काफी सरल है:लोल्कोडे स्ट्रिंग पार्सिंग

I HAS A STRINGY 
GIMMEH STRINGY 

कि स्ट्रिंग-er में stdin और यह स्टोर से पूरी लाइन पकड़ लेता है, मुझे क्षमा करें, यार्नSTRINGY तथाकथित।

स्ट्रिंग में दो पूर्णांक निकालने के बारे में मैं कैसे जाउंगा? मैं 15 और 16 को एक पूर्णांक के रूप में स्टोर करने में सक्षम होना चाहता हूं (LULZ I MEANS NUMBR)।

+5

यदि आप मेरे प्रश्न को कम करते हैं, तो क्या आप एक रचनात्मक टिप्पणी प्रदान कर सकते हैं? लोल्कोडे की उदासीनता के बावजूद, गूढ़ भाषा कोडिंग तकनीकों का अभ्यास करने के लिए एक चुनौतीपूर्ण तरीका है। – dpwilson

+1

मैंने उत्तर अपडेट किया, अपवॉट प्राप्त करने के बाद मैंने इसे फिर से चेक किया और इसमें एक बग है - आपको एक चरित्र जोड़ने की आवश्यकता है या नहीं, यह जांचने के लिए 'दोनों सेम' के बजाय 'DIFFRINT' का उपयोग करना था। – Pimgd

उत्तर

15

लघु जवाब:

आप इस में LOLCODE 1.2 नहीं कर सकते।

लांग जवाब:

के रूप में वहाँ कोई YARN हेरफेर कार्य करता है और कोई रास्ता नहीं प्रस्तावित 1.3 विनिर्देश में एक BUKKIT (जो जिस हम पात्रों में से एक के रूप में BUKKIT एक स्ट्रिंग अनुकरण कर सकता है की तरह कुछ करने के लिए एक YARN कास्ट करने के लिए कर रहे हैं), इस तरह की स्ट्रिंग से संख्या निकालना संभव नहीं है।

सिर्फ 1.2 कल्पना का उपयोग करना, हम अभी भी सिद्धांत रूप में, रिजर्व चर str01 के माध्यम से str99 यह काम कर सकते हैं, मुझे लगता है ...

के बाद से स्ट्रिंग संयोजन पहले से ही 1.2 SMOOSH ... MKAY के रूप में मौजूद है, तो आप कर सकते थे, है, और फिर ...

IM IN YR readloop UPPIN YR throwawayvariable WILE BOTH OF NOT broken AN DIFFRINT currentyarn AN STRINGY 
    str01, WTF? 
     OMG "Z" 
      str99 R str98 
      str98 R str97 
      str97 R str96 
      ... 
      str02 R str01 
      str01 R "" 
      GTFO 
     OMG "Y" 
      str01 R "Z"; 
      GTFO 
     OMG "X" 
      str01 R "Y"; 
      GTFO 
     ... 
     OMG "0" 
      str01 R "1"; 
      GTFO 
     OMG "" 
      str01 R "0" 
      GTFO 
     OMGWTF 
      I HAS A ERRORMSG 
      ERRORMSG R SMOOSH "I DUNNO WAT U SAY, illegal character", str01 MKAY 
      VISIBLE ERRORMSG 
      broken R WIN 
      GTFO 
    OIC 
    currentyarn R SMOOSH str01, str02, str03, str04, ..., str98, str99 MKAY 
IM OUTTA YR readloop 

इसके बाद, NUMBRs हो रही ...

NOT broken, O RLY? YA RLY 
    yarnnumber R "" 
    done R FAIL 
    IM IN YR parseloop UPPIN YR otherthrowaway WILE NOT done 
     EITHER OF BOTH SAEM str01 AN " " AN BOTH SAEM str01 AN "", O RLY? YA RLY 
      number1 R 0 
      DIFFRINT yarnnumber AN "", O RLY? YA RLY 
       number1 R MAEK yarnnumber A NUMBR 
      OIC 
      done R WIN 
     MEBBE DIFFRINT str01 AN "" 
      yarnnumber R SMOOSH yarnnumber, str01 MKAY 
     OIC 
     str01 R str02 
     str02 R str03 
     str03 R str04 
     ... 
     str98 R str99 
     str99 R "" 
    IM OUTTA YR parseloop 

    yarnnumber R "" 
    done R FAIL 
    IM IN YR parseloop2 UPPIN YR otherthrowaway2 WILE NOT done 
     EITHER OF BOTH SAEM str01 AN " " AN BOTH SAEM str01 AN "", O RLY? YA RLY 
      number2 R 0 
      DIFFRINT yarnnumber AN "", O RLY? YA RLY 
       number2 R MAEK yarnnumber A NUMBR 
      OIC 
      done R WIN 
     MEBBE DIFFRINT str01 AN "" 
      yarnnumber R SMOOSH yarnnumber, str01 MKAY 
     OIC 
     str01 R str02 
     str02 R str03 
     str03 R str04 
     ... 
     str98 R str99 
     str99 R "" 
    IM OUTTA YR parseloop2 
OIC 

और अंत में, क्या आप कभी भी उनके साथ करना चाहता था।

I HAZ A result 
result R SUM OF number1 AN number2 
VISIBLE result 

... के लिए, शेष बयान है कि str## चर का उपयोग करने में भरें।

यदि आप इसका उपयोग कर रहे हैं, तो मैं आपके लिए लोल्कोडे उत्पन्न करने के लिए कुछ उपयोग करने की सलाह देता हूं, हाथ से यह लिखना संभव नहीं है। विशेष रूप से यदि आपको 255 या 1024 वर्णों की तरह लंबी इनपुट लाइनों का समर्थन करना है।

+3

वाह, बहुत विस्तृत उत्तर, धन्यवाद! – dpwilson

संबंधित मुद्दे