>> ZAMYLA चान: बधाई हो परिष्करण पर अपने
सी कार्यक्रम की पहली जोड़ी.
मुझे पता है कि अपनी पहली चढ़ाई में सी वाक्यविन्यास कठिन हो सकता है.
लेकिन मैं के अंत में, आपको विश्वास दिलाता हूं बेशक, आप को देखने में सक्षम हो जाएगा
पहला कार्य की जोड़ी और मिनटों में उन्हें पूरा करें.
>> आप अधिक परिचित हो रही है अब जब कि वाक्य रचना के साथ, के सीजर को मिलता है.
सीज़र में, उपयोगकर्ता एक प्रस्तुत करेंगे एक कमांड लाइन के रूप में पूर्णांक कुंजी
तर्क, तो एक सादे दर्ज प्रॉम्प्ट पर पाठ संदेश.
कार्यक्रम तो कूटलेखन होगा पाठ और प्रिंट
उनके सिफर संदेश.
>> सीज़र के लिए enciphering काफी सरल है.
में, प्रत्येक अक्षर शिफ्ट उनके कुंजी द्वारा सादे पाठ,.
नतीजतन, यह भी है बहुत असुरक्षित.
लेकिन सीजर को लागू करने की पहल करेगा हमें ASCIIMath और सरणी डेटा को
संरचनाओं.
हम और अधिक जटिल को मिलेगा सिफर बाद में.
में 2, एक पत्र के एक सीज़र कुंजी के साथ सादे पाठ द्वारा प्रतिनिधित्व किया जाएगा
सिफर में पत्र सी वजह सी ए बी के बाद दो पत्र होगा
ओर ई. द्वारा डी और सी द्वारा प्रतिनिधित्व वर्णमाला का अंत, डब्ल्यू है
जेड लेकिन y द्वारा वाई द्वारा प्रतिनिधित्व किया, और एक्स इसके बाद दो पत्र है, इसलिए नहीं है
सिफर वर्णमाला के आसपास wraps.
सादे पाठ में वाई इस प्रकार का प्रतिनिधित्व करती है यह हो सकता है बी से एक सिफर में, और जेड
जैसे सीज़र साइफर देखने के लिए मदद एक निरंतर वर्णमाला पहिया.
>> उनके पाठ, उपयोगकर्ता कूटलेखन के लिए दो तर्क में प्रवेश करेंगे
कमांड लाइन में -
एक कुंजी के बाद. / सीज़र.
हमेशा की तरह, हम उपयोगकर्ता भरोसा नहीं कर सकते पूरी तरह से बना है कि इनपुट दर्ज करने के लिए
हमारे कार्यक्रम के लिए भावना.
तो हम करने के लिए मान्य होगा उनके कमांड लाइन इनपुट.
>> इसके बजाय int मुख्य शून्य का उपयोग कर के, हम कर रहे हैं मुख्य int, int argc, स्ट्रिंग argv का उपयोग कर.
पूर्णांक चर argc का प्रतिनिधित्व करता है में पारित तर्क की संख्या
कमांड लाइन.
और argv एक सरणी, या यह सोचने के रूप में है एक सूची, अंदर पारित किया तर्कों की
>> तो सीज़र के लिए, हम कैसे मान्य है उपयोगकर्ता के इनपुट?
खैर, वे ही प्रवेश करने दिया जाना चाहिए दो कमांड लाइन तर्क -
. / सीज़र और एक चाबी.
Argc 2 नहीं है, तो इसका मतलब है कि वे सिर्फ एक चाबी भूल गया है और या तो
दर्ज किया गया. / सीज़र, या वे कई कुंजी में प्रवेश किया.
>> यदि यह मामला है, तो आप हूँ निर्देश मुद्रित करना चाहते हैं
और प्रोग्राम से बाहर निकलें.
वे फिर से कोशिश करने की आवश्यकता होगी कमांड लाइन से.
लेकिन argc 2 है, भले ही आप हूँ जांच की जरूरत है कि क्या वे
आप एक वैध चाबी दे.
सीज़र के लिए, आप एक पूर्णांक की जरूरत है.
लेकिन argv तारों की एक सरणी है.
आप कैसे उस कुंजी का उपयोग करते हैं?
>> सरणियों पर सरसरी नज़र -
कई पकड़ कि डेटा संरचनाओं एक ही डेटा प्रकार के मूल्यों.
प्रविष्टियां, जिसका अर्थ है शून्य अनुक्रमित रहे हैं कि पहला तत्व सूचकांक शून्य है
और पिछले तत्व सूचकांक आकार पर है शून्य से 1, आकार की संख्या है
सरणी में तत्वों.
>> मैं एक नया स्ट्रिंग सरणी मेलबॉक्स घोषित हैं लंबाई 3 की, नेत्रहीन, यह
इस तरह दिखता है.
तार के लिए तीन कंटेनरों कंधे से कंधा मिलाकर.
किसी भी तत्व का उपयोग करने के लिए, आप नाम लिखें तब सरणी और संकेत मिलता है की
वर्ग कोष्ठक में सूचकांक.
यहाँ, मैं प्रत्येक के लिए एक मूल्य निर्दिष्ट कर रहा हूँ मैं किसी के साथ ऐसा होता है बस के रूप में तत्व,
अन्य स्ट्रिंग चर.
>> इसलिए हमारे कमांड लाइन तर्क का उपयोग करने के लिए, हम सब करना है पहुँच है
argv सरणी के अधिकार के तत्व.
उपयोगकर्ता. / चालू टीम में प्रवेश किया तो टर्मिनल में रॉकेट, 0 होता argv
. / चालू हो.
argv टीम होगा, और arg2 रॉकेट होगा.
>> हम अपने प्रमुख उपयोग कर सकते हैं अब कि, हम अभी भी बनाने की जरूरत
यह सही है कि सुनिश्चित करें.
हम एक पूर्णांक में परिवर्तित करने की आवश्यकता है.
लेकिन हम बस की तरह डाली नहीं कर सकता हम पहले से किया है.
सौभाग्य से, वाई समारोह के लिए एक ख्याल रखता है इस के लिए हमारे लिए और भी 0 देता
स्ट्रिंग परिवर्तित नहीं किया जा सकता है अगर एक पूर्णांक में.
यह आप पर निर्भर है, हालांकि, यह बताने के लिए उपयोगकर्ता क्यों आप नहीं होगा
कार्यक्रम आगे बढ़ना.
एक में वाई करने के लिए एक के परिणाम की दुकान पूर्णांक, और वहाँ आप अपने प्रमुख है.
अगले भाग में सरल है.
उनके सादे पाठ के लिए उपयोगकर्ता के लिए प्रेरित करें, जो डेटा प्रकार स्ट्रिंग की होगी.
सौभाग्य से हमारे लिए, सभी उपयोगकर्ता inputted तार मान्य हैं.
>> अब हम सभी आवश्यक इनपुट है कि उपयोगकर्ता से, यह हमारे लिए समय आ गया है
उनके संदेश कूटलेखन.
सीज़र की अवधारणा सरल है समझने के लिए काफी है.
लेकिन यह कैसे अपने कंप्यूटर को पता है जो पत्र एक के बाद एक आते हैं?
>> ASCII तालिका अंदर आता है यहाँ है
हर चरित्र एक पूर्णांक है इसके साथ जुड़े संख्या.
राजधानी में एक 65 है.
पूंजी बी 66 है.
लोअरकेस एक 97 है.
लोअरकेस बी 98 है.
लेकिन पात्रों सीमित नहीं हैं बस वर्णमाला संख्या को.
उदाहरण के लिए, @ प्रतीक ASCII संख्या 64 है.
>> पूरे स्ट्रिंग के साथ काम करने से पहले, ढोंग करते हैं कि हम सिर्फ बदलाव के लिए है
एक चरित्र.
ठीक है, हम केवल वास्तविक बदलाव चाहते हैं सादा पाठ, नहीं में पत्र
अक्षर या संख्या.
हम चाहते हूँ कि तो पहली बात चेक चरित्र में है कि क्या है
वर्णमाला.
>> समारोह isalpha के लिए इस करता है हमें और एक बूलियन देता है -
, वर्ण एक पत्र है अगर सच अन्यथा यदि झूठी.
दो अन्य उपयोगी कार्य कर रहे हैं isupper और islower, साथ
सुगम नामों.
वे सच वापसी अगर दिए गए चरित्र अपरकेस या लोअरकेस है,
क्रमशः.
वे Booleans हैं, वे कर रहे हैं शर्तों के रूप में उपयोग करने के लिए उपयोगी है.
>> Isalpha सत्य देता है, तो आप की आवश्यकता होगी चाबी से उस चरित्र शिफ्ट करने के लिए.
तो चलो ASCIIMath के लिए खुला और कुछ ASCII गणित है.
उपयोग के उपयोग के समान है सीज़र के लिए और पर एक कुंजी में ले जाता है
कमांड लाइन.
>> मैं ASCIIMath 5 चलाते हैं, यह जोड़ने के लिए लगता है 5 एक करने के लिए, मुझे पत्र च दे रही है और
ASCII मान प्रदर्शित.
तो चलो कार्यक्रम पर एक नज़र.
>> तुम यहीं, आश्चर्य हो सकता है क्यों जब यह पत्र, एक पूर्णांक है
जाहिर है, अच्छी तरह से, एक पत्र.
यह पता चला है कि पात्रों और पूर्णांकों विनिमेय हैं.
एकल में एक पत्र डाल करके उद्धरण चिह्न, पूर्णांक स्टोर कर सकते हैं
राजधानी के ASCII मूल्य ए हालांकि, सावधान रहें.
आप एक कपड़े की जरूरत है.
एकल उद्धरण चिह्नों के बिना, संकलक एक चर के लिए लग रही होगी
चरित्र एक नाम है, और नहीं.
>> तब मैं भंडारण, पत्र और एक चाबी जोड़ चर परिणाम int में योग.
परिणाम डेटा प्रकार की है हालांकि पूर्णांक, मेरे printf बयान का उपयोग करता है
पात्रों के लिए% ग प्लेसहोल्डर.
इसलिए कार्यक्रम चरित्र मुद्रित करता है पूर्णांक परिणाम के साथ जुड़े.
और हम पूर्णांक मुद्रित के बाद % डी का उपयोग कर के रूप में अच्छी तरह से फार्म, हम देखते हैं
संख्या के रूप में अच्छी तरह से.
तो अब आप कि हम देख सकते हैं पात्रों के इलाज और
पूर्णांकों, और इसके विपरीत.
>> चलो कुछ ASCIIMath बाहर का परीक्षण करते हैं अधिक बार एक कुंजी के रूप में 25 का उपयोग.
हम पत्र Z मिलता है.
अब हम 26 कोशिश.
हम एक पत्र प्राप्त करना चाहते हैं, लेकिन इसके बजाय हम एक बाईं ब्रैकेट मिलता है.
तो जाहिर है, सिर्फ जोड़ने पत्र की कुंजी नहीं करेंगे.
हम रैप करने के लिए एक फार्मूला यह पता लगाने की जरूरत है वर्णमाला के आसपास, जैसे हमारे
शुरुआत में उदाहरण था.
>> सीज़र के लिए एक फार्मूला इस प्रकार के रूप पारी है.
सी पी प्लस कश्मीर सापेक्ष 26 के बराबर होती है.
सापेक्ष एक उपयोगी है याद रखें हमें शेष देता है कि आपरेशन
अन्य द्वारा एक संख्या में विभाजित.
के सादे करने के लिए इस फार्मूले को लागू करते हैं 2 के एक प्रमुख के साथ पाठ पत्र.
Y के ASCII मूल्य, 89 है जो , हमें 91 सापेक्ष 26 देता है
जो 13 के बराबर होती है -
निश्चित रूप से ASCII मूल्य नहीं एक की, जो 67 है.
>> हास्य अब मुझे और दूर से स्थानांतरित एक वर्णमाला सूचकांक के लिए ASCII मूल्यों
एक शून्य है और जेड 25 है जहां वाई 24 है जिसका अर्थ है कि.
24 प्लस 2, सापेक्ष 6, हमें 26 देता है जो सापेक्ष 26, 0,
एक की वर्णमाला अनुक्रमणिका.
तो इस फार्मूले को लागू करने के लिए लगता है वर्णमाला पत्र के सूचकांक और
नहीं अपने ASCII मूल्य.
>> लेकिन आप ASCII मूल्यों के साथ शुरू करते हैं.
और सिफर चरित्र मुद्रित करने के लिए, आप के रूप में अच्छी तरह से अपने ASCII मूल्य की आवश्यकता होगी.
यह आप पर निर्भर है, फिर, यह पता लगाने के लिए आगे और पीछे स्विच करने के लिए कैसे.
>> आप सही फार्मूला बाहर आंकड़ा एक बार एक चरित्र के लिए, तुम सब करने की ज़रूरत है
हर के लिए एक ही फार्मूला लागू होता है सादे पाठ में पत्र -
उस पत्र, वर्णमाला तभी बेशक.
और आप को संरक्षित करने की जरूरत है कि याद मामले, ऊपरी या निचले, कि जहां है
isUpper और isLower कार्यों उल्लेख पहले काम में आ जाएगा.
आप दो फार्मूले हो सकता है -
अपरकेस पत्र के लिए एक और छोटे के लिए एक.
आपकी मदद करेगा एक isLower isUpper तो लागू करने के लिए जो फार्मूला निर्धारित करते हैं.
>> कैसे आप हर के लिए अपनी फार्मूला लागू करते हैं एक स्ट्रिंग में एकल वर्ण?
खैर, एक स्ट्रिंग सिर्फ एक है पात्रों की सरणी.
तो आपके द्वारा प्रत्येक चरित्र का उपयोग कर सकते हैं में हर चरित्र पर समूहीकरण
पाश के लिए एक में स्ट्रिंग.
पाश के लिए अपने की शर्त के रूप में, स्ट्रिंग के लिए समारोह strlen,
लंबाई, काम में आ जाएगा.
यह निवेश के रूप में एक स्ट्रिंग में लेता है और कि स्ट्रिंग की लंबाई देता है.
सुनिश्चित करें कि सही पुस्तकालय में शामिल करने के लिए सुनिश्चित करें स्ट्रिंग की लंबाई समारोह का उपयोग करने के लिए.
>> और वहाँ आप अपने सिफर है.
मेरा नाम Zamyla है.
और [संहिता बोल रही है].