[Audio] C प्रोग्रामिंग भाषा चीट शीट developerinsider.co/c-programming-language-cheat-sheet/ 1. C प्रोग्रामिंग 1.1 C क्या है? सी यू-एस-ए की एटीएन्डटी के बेल लैबोरेटरीज में डेनिस रिची द्वारा 1972 में विकसित एक प्रोग्रामिंग भाषा है। कोई भी प्रोग्रामिंग भाषा दो श्रेणियों में विभाजित की जा सकती है। समस्या-केंद्रित (हाई लेवल भाषा) मशीन-केंद्रित (लो लेवल भाषा) लेकिन सी को मध्य स्तर की भाषा के रूप में माना जाता है। सी मॉड्यूलर, पोर्टेबल, पुनर्योग्य है। 1.2 C प्रोग्राम की फीचर संरचित भाषा है जिसकी क्षमता होती है कि वह सभी जानकारी और निर्देशों को विभाजित और छिपा सके। कोड को सीधे तरीके से विभाजित किया जा सकता है फंक्शन या कोड ब्लॉक का उपयोग करके। समान्य उपयोग की भाषा होने के कारण वह सिस्टम प्रोग्रामिंग के लिए आदर्श भाषा है। इसका उपयोग व्यावसायिक और वैज्ञानिक अनुप्रयोगों के लिए भी किया जा सकता है। एन-एस-आइ ने 1983 में सी के लिए एक मानक स्थापित किया है। सी की क्षमता है कि वह बिट्स, बाइट और पते को प्रबंधित कर सकती है। इसे बाद में 1990 में अडॉप्ट किया गया है। पोर्टेबिलिटी पोर्ट या सॉफ्टवेयर का उपयोग करने की क्षमता है। एक कंप्यूटर सी प्रोग्राम को पुनः प्रयोग किया जा सकता है। संशोधन या कोई संशोधन किए.
[Audio] C में सीमित संख्या की चुनिंदा शब्द हैं। रिची द्वारा केवल 27 कीवर्ड दिए गए हैं, जबकि आंसी द्वारा 5 कीवर्ड जोड़े गए हैं। 'C' की ताकत इसमें इन-बिल्ट फंक्शन में है, जो यूनिक्स सिस्टम द्वारा उपलब्ध किए गए हैं। कुछ फंक्शन आपरेशन में उपयोग किए जाते हैं। वे अन्य विशेष उद्देश्यों के लिए होते हैं। 1.3 सी प्रोग्राम संरचना प्रीप्रोसेसर निदेशिकाएं। वैश्विक घोषणाएं मुख्य () 1.4 को सीखा प्रत्यय प्रकार प्रकार प्रदान किए जाते हैं। कीवर्ड कीवर्ड को जो पहले से ही सी कंपाइलर को व्याख्या की गई है। C में केवल 32 कीवर्ड ही उपलब्ध हैं। इन कीवर्ड को रिजर्व्ड शब्दों के रूप में भी जाना जाता है। auto, double, int, struct, break, case, enum, register, typedef, char, extern, return, union, const, float, short, unsigned, continue, for, signed, void, default, goto, sizeof, volatile, do, if, static, while। 1.5 सी वर्ण समूह C वर्ण को डिजिट, ध्वनि या विशेष चिह्नों से प्रदर्शित किया जाता है, जो जानकारी को प्रतिनिधित्व करते हैं। C में वैध वर्ण, संख्याएं और विशेष चिह्नों की अनुमति है। वैध वर्ण A, B, ..., Y, Z, a, b, ..., y, z, अंक 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 और विशेष चिह्न ~, ', !, @, #, %, ^, *, (, ), _, plus, =, |, \, [, ], :, ;, , ', <, >, ,, ., ?, / हैं। 1.6 सी प्रोग्राम लिखने, कंपाइल करने और निष्पादित करने के नियम। 2/32.
[Audio] C सेन्सिटिव होता है जिसका मतलब है कि वेरिएबल जिसका नाम counter है वह वेरिएबल जिसका नाम counter है से अलग होता है। सभी कीवर्ड लोअरकेस होते हैं। कीवर्ड कोई भी अन्य उद्देश्य (जैसे वेरिएबल के नाम) के लिए उपयोग नहीं किया जा सकता। हर C स्टेटमेंट को एक ; से समाप्त किया जाना चाहिए। इसलिए ; स्टेटमेंट का अंतकरण का काम करता है। पहले अक्षर अल्फाबेट या अंडरस्कोर होना चाहिए, वेरिएबल, कॉन्स्टेंट या कीवर्ड के भीतर कोई भी खास चिन्ह, कॉमा या खाली जगह अनुमति नहीं है। वेरिएबल, कॉन्स्टेंट या कीवर्ड के भीतर दो शब्दों के बीच रिडेबिलिटी को बेहतर बनाने के लिए रिक्त स्थान दिया जा सकता है। हालांकि, वेरिएबल, कॉन्स्टेंट या कीवर्ड के भीतर कोई रिक्त स्थान नहीं होना चाहिए। प्रोग्राम में वेरिएबल को इस्तेमाल किया जाने से पहले उसे घोषित किया जाना चाहिए। फ़ाइल का एक्सटेंशन .c होना चाहिए। प्रोग्राम को निष्पादन से पहले कॉम्पाइल किया जाना चाहिए। 1.7 डेटा टाइप और प्लेसहोल्डर C में 5 बेसिक बिल्ट-इन डेटा टाइप्स हैं। डेटा टाइप एक सेट की परिभाषा करता है जिसमें वेरिएबल स्टोर कर सकता है साथ ही उस पर कई कार्य किया जा सकता है। एक वेरिएबल अलग-अलग समय पर अलग-अलग मान ले सकता है। वेरिएबल.
[Audio] विस्थापक प्रारूप %c अक्षर %d साइन द्विमानिक पूर्णांक %i साइन द्विमानिक पूर्णांक %e वैज्ञानिक विज्ञान [e] %E वैज्ञानिक विज्ञान [E] %f दशमलव संवहनी पूर्णांक %o असाइन क्रमांक (अवैध) %s अक्षरों की स्ट्रिंग %u असाइन द्विमानिक पूर्णांक (अवैध) %x असाइन हेक्साडेसिमल (निचला) %X असाइन हेक्साडेसिमल (ऊपरी) %p एक अंक प्रदर्शित करता है 1.8 नियंत्रण वर्ण (भाग्य सूचनाएं) कुछ अमुद्रित वर्ण और बैकस्लैश () और एपॉस्ट्रोफ (') को भाग्य सूचना के रूप में व्यक्त किया जा सकता है। \a घंटी \n नया पंक्ति \r कैरिज रिटर्न \b बैकस्पेस \f फॉर्मफीड \t निर्देशांक टैब \ उद्धरण चिह्न \v स्थानांतरित निर्देशांक \' एपॉस्ट्रोफी \\ बैकस्लैश \? प्रश्न चिह्न \0 शून्य 1.9 कीबोर्ड से स्वरूप वर्णमाला से इनपुट प्राप्त करना कीबोर्ड से इनपुट प्राप्त करने के लिए एसकेएनएफ फ़ंक्शन का उपयोग किया जाता है। एसकेएनएफ फ़ंक्शन का सामान्य रूप है: एसकेएनएफ (फ़ॉर्मेट स्ट्रिंग,&चर्चता,&चर्चता,...); फ़ॉर्मेट स्ट्रिंग वे अंक हैं जिनका हम कीबोर्ड से प्राप्त करना चाहते हैं। प्रत्येक चर्चता के पहले आने वाले इन अंकों के साथ आधार चिन्ह आता है। अप्रवश्य शंखलाएं.
[Audio] तो सुनिश्चित कर लें कि आप बस स्कैनफ़ फॉर्मेट स्ट्रिंग में प्लेसहोल्डर वर्ण डालते हैं। निम्न उदाहरण में कुछ भीड़ कुंजी से कई वेरियेबल प्राप्त करता है। फ्लोट ए; इंट एन; स्कैन्फ (%d%f, &n, &a); ध्यान दें कि स्कैन्फ फ़ंक्शन में कोई त्रुटि जांचने की क्षमता नहीं है। प्रोग्रामर को इनपुट डेटा (प्रकार, सीमा आदि) को सत्यापित करने और त्रुटियों से बचाने के लिए जिम्मेदार है। 2। अभिव्यक्ति और ऑपरेटर श्रेणी निम्नलिखित तालिका सभी ऑपरेटरों की चरणताक्षमता और एसोसिएटिविटी के नियमों का सारांश करती है, जिनमें हमने अभी तक चर्चा नहीं की है। एक ही पंक्ति पर ऑपरेटर एक ही चरणता रखते हैं; पंक्तियों की कमी अभिशेषण की कमी का आदेश है, इसलिए, उदाहरण के लिए, *, / और% की सभी चरणता है, जो जोड़ा और से भी ऊपर है। ऑपरेटर '' () '' अभिलेख कोल के लिए है। ऑपरेटर -> और। संरचनाओं के सदस्यों तक पहुंचने के लिए इस्तेमाल किया जाता है; विवरण ऑपरेटर एसोसिएटिविटी फंक्शन अभिव्यक्ति () दायां से बायां तक एकांत्र संख्या अभिव्यक्ति [] दायां से बायां तक संरचना ऑपरेटर -> दायां से बायां तक संरचना ऑपरेटर। दायां से बायां तक गुणांक माइनस दायां से बायां तक इंक्रीमेंट / डिक्रीमेंट प्लस प्लस, दायां से बाय.
[Audio] जोड़ना + दाएं से दाएं कम करना <> दाएं से छोटा < दाएं से से भी कम या बराबर <= दाएं से बड़ा > दाएं से बड़ा या बराबर >= दाएं से बराबर == दाएं से अलग != दाएं से बिटवाइज और & दाएं से बिटवाइज अकेला या ^ दाएं से बिटवाइज समावेशी या | दाएं से तार्किक A-N-D && दाएं से तार्किक या || दाएं से शर्ती ?: दाएं से बाएंको असाइनमेंट =, *=, /=, %=, + =, -=, &=, ^=, |=, <<=, >>= बाएं से बाएंको कंमा , बाएं से बाएंको यूनरी & +, -, और * बाइनरी रूपों से ज्यादा महत्वपूर्ण होते हैं। 3. निर्णय नियंत्रण संरचना सी में तीन बड़े निर्णय नियंत्रण निर्देश हैं अगर निर्देश, अगर-नहीं निर्देश, और स्विच निर्देश। 3.1 अगर निर्देश सी के लिए आदेश प्रदान करने के लिए शब्द अगर का उपयोग करता है। अगर निर्देश की सामान्य रूप यह दिखती है: 6/32.
[Audio] //एकल वाक्य के लिए अगर(शर्त) वाक्य; एक से ज्यादा वाक्यों के लिए अगर(शर्त) अगर(शर्त) की अधिक आमचुट रूप निम्न रूप है: //एकल वाक्य के लिए अगर(व्यक्ति) वाक्य; एक से ज्यादा वाक्यों के लिए अगर(व्यक्ति) अगर(व्यक्ति) यहां व्यक्ति कोई भी मान्य व्यक्ति हो सकता है जिसमें सम्बंध व्यक्ति हो सकता है। हम अगर वाक्य में अंकगणितीय अभिव्यक्ति भी उपयोग कर सकते हैं। उदाहरण के लिए सभी निम्न अगर वाक्य योग्य हैं। अगर (3 प्लस 2 % 5) प्रिंटफ (यह काम करता है); अभिव्यक्ति (3 प्लस 2 % 5) 5 को मान्य करता है और क्योंकि 5 से अधिक नहीं है इसलिए यह सत्य माना जाता है। इसलिए प्रिंटफ (यह काम करता है); निष्पादित होता है। 3.2 अगर-अन्यथा वाक्य अगर वाक्य स्वयं ही इससे अधिक वाक्य या एक समूह के प्रवेशक के निम्न मान परिणाम होते हैं। यह निर्धारित नहीं होता है कि व्यक्ति क्या गलत या सही होता है। क्या हम एक समूह के वाक्यों को निष्पादित कर सकते हैं यदि व्यक्ति सही होता है और दूसरे समूह के वाक्यों को निष्पादित कर सकते हैं यदि व्यक्ति गलत होता है? बेशक! यही तो है विवाक्या जो अगर (व्यक्ति) पारिभाषित करता है फिर वाक्य; नोट व्यक्ति के वाक्य के बाद एक समूह से नहीं लिखा गया जो पछ.
[Audio] ध्यान दें कि else अभी भी if के नीचे बिल्कुल ठीक से लिखा गया है। if ब्लॉक में कथन और else ब्लॉक में कथनों को दाहिने ओर प्रविष्ट किया गया है। यदि if ब्लॉक में केवल एक कथन को निष्पादित किया जाना था और if ब्लॉक में केवल एक कथन था, तो हम ब्रेसेज की जोड़ को छोड़ सकते थे। if कथन के साथ, else की डिफ़ॉल्ट स्कोप भी स्टेटमेंट के तुरंत बाद का स्टेटमेंट है। इस डिफ़ॉल्ट स्कोप को ओवरराइड करने के लिए, उपर दिखाए गए एकाधिक कथनों के साथ if में दिखाए गए ढ़ोल के जोड़ का उपयोग किया जाना चाहिए। 3.3 नेस्टेड if-else यदि हम एक पूरा if-else निर्माण किसी भी if कथन के शरीर या किसी भी else कथन के शरीर में लिखते हैं। इसे ifs की नेस्टिंग कहा जाता है। इसे दिखाया गया है if (व्यक्ति1) कथन; else जोड़ का उपयोग किया गया है। 3.4 if-else नेस्टिंग/else-if शर्ता else-if लंबा एक मल्टी-वे निर्णय लिखने का सबसे सामान्य तरीका है। यदि (व्यक्ति1) कथन; तो निष्पादित होता है, और यह पूरी श्रृंखला को समाप्त कर देता है। जैसा कि हमेशा के लिए, प्रत्येक कथन कोड या एकल कथन, या उनको ढाल में एक समूह होते हैं। अंतिम else भाग नोन ऑफ द अबोव या डिफ़ॉल्ट केस को हैंडल करता है जहां अन्य कोई भी शर्त पूरी नहीं होती है। 3.5 स्विच स्टेटमेंट या न.
[Audio] स्विच स्टेटमेंट एक बहु-तरीकी निर्णय है जो यह जाँचता है कि क्या एक अभिव्यक्ति का मूल्य किसी संख्या की निर्दिष्ट स्थिर पूर्णांक में से किसी एक से मेल खाता है, और उसके अनुसार शाखाओं को अक्षम करता है। स्विच स्टेटमेंट हमें निर्णय लेने की अनेक विकल्पों में से चुनने की अनुमति देता है और इसलिए उसे स्विच या अधिक सही स्विच-केस-डिफॉल्ट कहा जाता है, क्योंकि ये तीन शब्द स्विच स्टेटमेंट का हिस्सा बनते हैं। स्विच (अभिव्यक्ति) स्विच-केस आदेश में, प्रत्येक केस साधारण रूप से एक सरल लेबल के रूप में काम करता है। एक लेबल एक बिंदु को निर्धारित करता है जहाँ कार्यक्रम की प्रगति को जारी रखना है। स्विच स्टेटमेंट एक केस-भाग या लेबल को चुनेगा जहाँ से कार्यक्रम की प्रगति जारी रखने में सहायता मिलेगी। कार्यक्रम ब्रेक कमांड तक पहुँचने तक जारी रहेगा। ब्रेक आदेश स्विच संरचना में महत्वपूर्ण भूमिका निभाते हैं। यदि आप इन आदेशों को हटा देते हैं, तो कार्यक्रम का निर्णय अगले केस भागों और सभी शेष केस भागों तक जारी रहेगा जब तक स्विच ब्लॉक के अंत तक जाएगा (जबकि अधिकांश समय हम एक ही केस भाग चलाना चाहते हैं)। यदि स्विच तुलनान कोई भी केस भाग मेल न करें, तो डिफॉल्ट भाग चलाया जाएगा। 3.6 स्व.
[Audio] हमें एक प्रोग्राम के हिस्से को दोहराने के लिए तीन तरीके हैं for, while और do-while। 4.1 while लूप while लूप एक शर्त या अभिव्यक्ति और एक एकल आदेश या आदेश ब्लॉक से बना हुआ है जो एक लूप में चलना होता है। //एकल आदेश के लिए while(अभिव्यक्ति) आदेश; //एकाधिक आदेश के लिए while(अभिव्यक्ति) while लूप के भीतर के आदेश निरंतर चलते रहेंगे जब तक यह शर्त सत्य है। जब शर्त असत्य हो जाती है, तो नियंत्रण पहले वाले आदेश पर जाता है जो व्हाइल लूप के शरीर के बाद आता है। व्हाइल का सामान्य रूप नीचे दिखाया गया है: लूप काउंटर को प्रारंभ करें; while (शर्त का लूप काउंटर पर टेस्ट करें) जबतक। 4.2 फॉर लूप फॉर लूप व्हाइल लूप के अनुरूप है लेकिन यह अधिक जटिल है। फॉर लूप एक नियंत्रण अभिव्यक्ति से बना होता है जो लूप कितने बार चलेगा और एक आदेश अनुभाग होता है। आदेश अनुभाग एक एकल आदेश या आदेश ब्लॉक हो सकता है। //एकल आदेश के लिए for(नियंत्रण अभिव्यक्ति) आदेश; //बहुत से आदेश के लिए for(नियंत्रण अभिव्यक्ति) नियंत्रण अभिव्यक्ति में तीन भाग होते हैं: 10/32.
[Audio] इनिशियलाइजेशन; परीक्षण शर्त; हर बार आदेश चलाएँ) इनिशियलाइजेशन भाग केवल एक बार फॉर लूप शुरू में किया जाता है। हम यहां एक लूप चर चर का मान आरंभ कर सकते हैं। परीक्षण शर्त लूप का सबसे महत्वपूर्ण हिस्सा है। यदि यह शर्त वैध (सही) है तो लूप जारी रहेगा। अगर शर्त अवैध (गलत) हो जाती है तो लूप खत्म हो जाएगा। हर बार आदेश चलाने वाला भाग हर लूप चरण में प्रदर्शित होगा। हम इस भाग का उपयोग लूप को समाप्त करने के लिए अंतिम शर्त तक पहुंचने के लिए करते हैं। उदाहरण के लिए हम लूप भरण या कमी कर सकते हैं अपवाद इस तरह से कि निर्दिष्ट संख्या के चक्रों के बाद लूप शर्त अवैध हो जाती है और फॉर लूप समाप्त हो जाता है। 4.3 do-while लूप while और फॉर लूप शुरू पर समाप्ति शर्त की परीक्षण करते हैं। इसके विपरीत, C में तीसरा लूप, do-while, लूप शरीर के प्रत्येक पास से बाहर परीक्षण करता है; शरीर हमेशा कम से कम एक बार निष्पादित किया जाता है। do का वाक्य वह है do while (व्यक्ति); वाक्य निष्पादित किया जाता है, फिर व्यक्ति मूल्यांकित किया जाता है। यदि यह सही हो, तो फिर वाक्य दोबारा निष्पादित किया जाता है, और इसी तरह आगे। जब व्यक्ति गलत बन जाता है, लूप समाप्त हो जाता है। अनुभव द.
[Audio] #include मुख्य() ऊपर दिए गए उदाहरण में, प्रोग्राम सभी इनपुट स्वीकार करता है लेकिन उसमें से '.' चरित्र को छोड़ देता है। आप जैसे ही टाइप करते हैं वे टेक्स्ट दोहराया जाएगा लेकिन मुख्य आउटपुट आप Enter की दबाने के बाद (जो एक \n चरित्र को समान है) प्रिंट होगा। हमने पहले भी बताया है कि यह इसलिए है क्योंकि getchar() फंक्शन एक बफर इनपुट फंक्शन है। 4.5 जाओ और लेबल C अप्रत्येक-शोषण-योग्य जाओ देता है और लेबलों को शाखा के लिए प्रदान किया जाता है। रूपरूप, जाओ दिशा अनिवार्य कभी नहीं होता, और अमल अक्सर आसान होता है बिना इसके कोड लिखना। हमने इस पुस्तक में जाओ नहीं उपयोग किया है। फिर भी, कुछ स्थितियों में जहां गोटो को स्थान मिल सकता है। सबसे आम उसे दो-बहुत गहरे स्तर पर संरचना में से ब्रेक करने के लिए है, जैसे कि दो या उससे अधिक चक्रों से बाहर निकलना। ब्रेक निर्देश लगभग हमेशा केवल सबसे अंतिम चक्र से निकलता है। इसलिए: for ( ... ) } } ... error: /* मेस को साफ़ करो */ यह संगठन उपयोगी है अगर त्रुटि-हैंडलिंग कोड कठिन न हो, और त्रुटियाँ कई जगह पर हो सकती हैं। एक लेबल एक ही रूप में है जैसे एक चरित्र का नाम, और उसके बाद आइये। यह किसी भी उसी फंक्शन में उपलब्ध बीच दिखाई दे सकता ह.
[Audio] 5. अर्रैय्स अर्रैय्स उस संरचनाओं हैं जो एक ही डेटा प्रकार की कई वेरिएबल्स को रखती हैं। अर्रैय्स में पहला तत्व संख्यांकित 0 से होता है, इसलिए अर्रैय्स का आखिरी तत्व अर्रैय्स के आकार से 1 कम होता है। एक अर्रैय्स को उपनामित वेरिएबल भी कहा जाता है। अर्रैय्स का इस्तेमाल करने से पहले उसका प्रकार और आयाम घोषित किया जाना चाहिए। 5.1 अर्रैय्स की घोषणा अन्य वेरिएबलों की तरह, अर्रैय्स को घोषित किया जाना आवश्यक होता है ताकि कंपाइलर को पता लगे कि हमें कौन सा अर्रैय्स चाहिए और कितना बड़ा अर्रैय्स चाहिए। int marks[30]; यहां, int वेरिएबल का प्रकार निश्चित करता है, जैसा कि साधारण वेरिएबलों के साथ होता है और शब्द marks वेरिएबल का नाम निश्चित करता है। [30] हालांकि नया है। संख्या 30 हमारे अर्रैय्स में होने वाले int प्रकार के तत्वों की संख्या बताती है। इस संख्या को अक्सर अर्रैय्स के आयाम के रूप में जाना जाता है। ब्रैकेट ([ ]) कंपाइलर को बताता है कि हम एक अर्रैय्स से दूर हो रहे हैं। चलो अब देखते हैं कि अर्रैय्स को घोषित करते समय इसे इनिशलाइज कैसे किया जाता है। निम्नलिखित उदाहरण इसे दर्शाते हैं। int num[6] =; int n[] =; float press[] =; 5.2 अर्रैय्स के तत्वों तक पहुँचना अर्रैय्स को घोषित क.
[Audio] लूप का प्रक्रिया 30 बार दोहराया जाता है और उपयोगकर्ता से एक छात्र के अंकों का अनुरोध करके प्राप्त करने की। लूप के पहले बार, i की मान 0 है, इसलिए scanf() फ़ंक्शन अर्रे तत्त्व marks[0] के अंक में टाइप की गई मान को स्टोर करेगा, अर्रे के पहले तत्त्व। यह प्रक्रिया i के 29 बनने तक दोहराया जाएगा। यह आखरी बार लूप का अंत है, जो अच्छी बात है, क्योंकि marks[30] जैसे कोई अर्रे तत्त्व नहीं है। scanf() फ़ंक्शन में, हमने अर्रे के तत्त्व marks[i] पर पता का ऑपरेटर (&) का उपयोग किया है। इस तरह करके, हम स्कैनफ() फ़ंक्शन को इस विशेष अर्रे तत्त्व का पता दे रहे हैं, अंतर्निर्धारित इसकी मान के बजाय; जो कि scan() की आवश्यकता है। 5.4 एक अर्रे से डेटा पढ़ना प्रोग्राम बैलेंस और औसत की गणना करने के लिए डेटा वापस से उपयोग करता है। लूप बहुत ही समान है, लेकिन अब लूप के शरीर के द्वारा प्रत्येक छात्र के अंकों को एक चलते कुल में जोड़ा जाता है जो कि गतिमान शब्द में स्टोर होता है। जब सभी अंक जोड़ दिए गए हों, तो परिणाम को 30 से विभाजित करके औसत प्राप्त होता है। for ( i = 0 ; i <= 29 ; i plus plus ) sum = sum plus marks[i] ; avg = sum / 30 ; printf ( \nAverage marks = %d, avg ) ; 5.5 उदाहरण हम एक प्रोग्राम लिखने का प्रयास करेंगे जो एक टेस्ट में 30 छात्रों के एक कक्षा द्वारा प्राप्त अंकों का औसत निकालने के लिए ह.
[Audio] स्ट्रिंग्स अक्षरों के एरे होते हैं। एरे का प्रत्येक सदस्य स्ट्रिंग में किसी भी अक्षर में से एक को रखता है। उदाहरण #include main() Output Results: Enter your name : विनीत हैलो, विनीत, आप कैसे हो ? अगर उपयोगकर्ता विनीत दर्ज करता है तो एरे का पहला सदस्य 'वी' को रखेगा, दूसरा सेल 'ि' और ऐसे ही आगे चलते रहेंगे। सी एक स्ट्रिंग को शून्य मान के द्वारा अंत तक पहुंचने का निर्धारण करता है। हम इस अक्षर को नल कैरेक्टर कहते हैं और इसे \0 के साथ दिखाते हैं। (यह एक अक्षर है और इसका मूल्य 0 है, हालांकि हम इसे याद रखने के लिए दो अक्षरों के साथ दिखाते हैं कि यह अक्षर प्रकार है, न कि पूर्णांक)। इसी तरह हम सदस्यों को अक्षर मूल्यों से एसाइन करके स्ट्रिंग बना सकते हैं। name[0]='बी'; name[1]='र'; name[2]='ि'; name[3]='आ'; name[4]='न'; name[5]='\0'; हमने ऊपर दिए गए उदाहरण में देखा कि स्ट्रिंग वेरिएबल का प्लेसहोल्डर %s है। इसके अलावा स्ट्रिंग मान प्राप्त करने के लिए हम & चिह्न का प्रयोग नहीं करेंगे। 6.2 नोट करने योग्य बातें स्कैनफ़ () का उपयोग करके स्ट्रिंग दर्ज करते समय हमें दो बातों पर सावधान रहना होगा: स्ट्रिंग की लंबाई पास्टिकियां रखने वाले अक्षर एरे के आयाम से अधिक न हो। इसका कारण यह है कि सी कंपाइलर अक्षर एरों पर सीमाएं जांचने में सक्षम नह.
[Audio] #include मुख्य() और यहा परिणाम है ... अपना नाम दर्ज करें Vineet Choudhary नमस्ते! Vineet Choudhary कार्यक्रम और परिणाम व्याख्यात्मक हैं, इससे केवल यह स्पष्ट होता है कि puts () एक ही स्ट्रिंग को प्रदर्शित कर सकता है (इसलिए ऊपर के कार्यक्रम में दो puts () का उपयोग किया गया है)। इसके अलावा, एक स्ट्रिंग को प्रदर्शित करते हुए, printf () के विपरीत, puts () करने पर कर्सर को अगली पंक्ति पर रखता है। हालांकि gets () केवल एक ही स्ट्रिंग प्राप्त करने में सक्षम है, लेकिन gets () का एक अधिकतम सकारात्मक बिंदु है कि यह एक बहुमात्रिक स्ट्रिंग प्राप्त कर सकता है। यदि हम परेशानी उठाने के लिए तैयार हैं, तो हम scanf () को इस प्रकार लिखकर बहुमात्रिक स्ट्रिंग स्वीकार करने में सक्षम बना सकते हैं: char name [25]; printf (अपना पूरा नाम दर्ज करें); scanf (%[^\n]s, name) ; योग्य होने के बावजूद यह एक अच्छा तरीका है कि किसी फंक्शन को बुलाने के लिए, आप सहमत होंगे। 6.3 मानक पुस्तकालय स्ट्रिंग फंक्शन सभी सी कॉम्पाइलर के साथ एक बड़े सेट के उपयोगी स्ट्रिंग हैंडलिंग लाइब्रेरी फंक्शन प्रदान किए जाते हैं जो string.h फ़ाइल में होते हैं। strlen स्ट्रिंग की लंबाई ढूंढें strlwr स्ट्रिंग को लोअरकेस में रूपांतरित करें strupr स्ट्रिंग को अपरकेस में रूपांतरित करें strcat एक स्ट्रिंग को दूसरे के अंत में जोड़ता है strncat पहले n अक्षरों.
[Audio] strnicmp दो स्ट्रिंग के पहले n वर्णों को case के बिना तुलना करता है strdup एक स्ट्रिंग को नक़ल करता है strchr एक स्ट्रिंग में दिए गए वर्ण की पहली घटना को ढूंढता है strrchr एक स्ट्रिंग में दिए गए वर्ण की अंतिम घटना को ढूंढता है strstr एक स्ट्रिंग में दिए गए दिए गए स्ट्रिंग की पहली घटना को ढूंढता है strset स्ट्रिंग के सभी वर्णों को एक दिए गए वर्ण से सेट करता है strnset स्ट्रिंग के पहले n वर्णों को एक दिए गए वर्ण से सेट करता है strrev स्ट्रिंग को उलट देता है 7. फ़ंक्शंस 7.1 फ़ंक्शं क्या है? एक फ़ंक्शंस प्रोग्राम के किसी भी भाग में बुलाया या इस्तेमाल किया जा सकता है जिसमें कोड का एक ब्लॉक होता है। फ़ंक्शंस का बॉडी शुरू होता है . यह मुख्य फ़ंक्शंस की तरह है। नीचे एक उदाहरण दिखाया गया है कि हम कैसे एक सरल फ़ंक्शंस लिख सकते हैं। #include /*फंक्शंस के प्रोटोटाइप्स*/ myfunc(); main() /*फ़ंक्शंस का परिभाषा*/ myfunc() उपरोक्त उदाहरण में हमने कुछ प्रोग्राम का एक भाग अलग से फ़ंक्शंस में रखा है। फ़ंक्शंस बॉडी बहुत ही जटिल हो सकती है। फ़ंक्शंस बनाने के बाद हम उसे उसके नाम से बुला सकते हैं। फ़ंक्शंस एक दूसरे को भी बुला सकते हैं। एक फ़ंक्शंस भले ही खुद को भी बुला सकती है। यदि आपति, फंक्शंस के प्रोटोटाइप्स ध्यान दें। कुछ.
[Audio] अगर एक सी प्रोग्राम में एक से अधिक फ़ंक्शन होते हैं, तो उनमें से एक (और केवल एक) फ़ंक्शन main() होना चाहिए, क्योंकि प्रोग्राम के निष्पादन का आरंभ हमेशा main() के साथ होता है। एक सी प्रोग्राम में उपस्थित फ़ंक्शनों की संख्या पर कोई सीमा नहीं होती है। प्रोग्राम में हर फ़ंक्शन को main() में फ़ंक्शन कॉल के द्वारा निर्दिष्ट क्रम में बुलाया जाता है। हर फ़ंक्शन अपना काम करने के बाद, नियंत्रण वापस main() को लौटता है। main() फ़ंक्शन के सभी फ़ंक्शन कॉल होने के बाद, प्रोग्राम समाप्त हो जाता है। 7.2 फ़ंक्शन का उपयोग क्यों करें क्यों अलग-अलग फ़ंक्शनों को लिखें? अधिक उचित क्यों न हो सारी तकनीक को एक ही फ़ंक्शन, main() में भर दें? दो कारण हैं: फ़ंक्शन लिखने से एक ही कोड को बार-बार लिखने से बचाया जा सकता है। फ़ंक्शन का उपयोग करने से प्रोग्राम लिखने और करने में आसानी होती है। अगर किसी प्रोग्राम का काम अलग-अलग क्रियाओं में विभाजित किया जा सकता है, और हर क्रिया को अलग फ़ंक्शन में रखा जा सकता है, तो हर एक को अलग-अलग रूप से लिखा और जांचा जा सकता है। कोड को मॉड्यूलर फ़ंक्शन में विभाजित करने से प्रोग्राम डिजाइन करने और समझने में भी आसान होता है। कहानी का संबंध क्या है? एक ही फ़ंक्शन में सारा तकनीक भरने की को.
[Audio] उपरोक्त उदाहरण में हमने पैरामीटर 4 के साथ sayhello() फ़ंक्शन को बुलाया है। इस फ़ंक्शन कोई इनपुट मान स्वीकार करता है और इसे फ़ंक्शन के शरीर को शुरू करने से पहले काउंट वेरिएबल में असाइन करता है। sayhello() फ़ंक्शन फिर स्क्रीन पर काउंट बार एक हेलो संदेश प्रिंट करेगा। 7.4 फ़ंक्शन रिटर्न मान गणित में हम आमतौर पर फ़ंक्शन से कोई मान लौटने की उम्मीद रखते हैं। यह पैरामीटर स्वीकार कर सकता है या नहीं कर सकता है लेकिन यह हमेशा एक मान लौटाता है। इस लौटे मान का आकार सी में दूसरे मानों की तरह होता है। यह int, float, char या कुछ अन्य हो सकता है। इस लौटे मान का आकार आपके फ़ंक्शन का आकार निर्धारित करता है। फ़ंक्शन का डिफ़ॉल्ट आकार int या पूर्णांक होता है। अगर आप फ़ंक्शन का आकार नहीं बताते हैं तो यह int के आकार का होगा। पहले हमने कहा था कि हर फ़ंक्शन को एक मान लौटाना होता है। हम इसे return कमांड से करते हैं। int sum() यह फ़ंक्शन फ़ंक्शन के रूप में बहुतायत c वेरिएबल का मान लौटाता है। हम return कमांड में एक्सप्रेशन्स का उपयोग भी कर सकते हैं। उदाहरण के लिए हम फ़ंक्शन के दो आखिरी पंक्तियों को बदल सकते हैं और return a प्लस b; का उपयोग कर सकते हैं। अगर आप फ़ंक्शन में मान लौटाना भूल जाते हैं तो आपको अधिक.
[Audio] C भाषा में एक और void टाइप की फ़ंक्शन है। Void टाइप का फ़ंक्शन एक ऐसा फ़ंक्शन होता है जो कोई वैल्यू नहीं वापस करता है। आप एक void फ़ंक्शन को एक फ़ंक्शन के रूप में डिफ़ाइन कर सकते हैं जो किसी वैल्यू को वापस नहीं लौटाता है। void test () आप इस तरह से वापस नहीं लिख सकते क्योंकि यह कोई वैल्यू नहीं लौटाता। इसलिए आप लिख नहीं सकते: a=test(); इस ऑर्डर का इस्तेमाल करने से एक एरर उत्पन्न होगा। 7.6 C में रिकर्सिव फंक्शन को खुद को कॉल करने की संभावना होती है। किसी फ़ंक्शन को रिकर्सिव कहा जाता है अगर फ़ंक्शन के बॉडी के अंदर एक स्टेटमेंट में वही फ़ंक्शन कॉल होता है। निम्न गणना रिकर्सिव फ़ंक्शन की हिसाब से फैक्टोरियल वैल्यू को कैलकुलेट करने के लिए है। #include int rec(int); main() int rec (int x) आउटपुट कोई भी नंबर दर्ज करें 5 फैक्टोरियल वैल्यू = 120 हम इस रिकर्सिव फ़ैक्टोरियल फ़ंक्शन को समझेंगे। क्या होता है, 20/32.
[Audio] अनुवाद : rec (5) से वापस (5 * rec (4) तक वापसी, जो (4 * rec (3) तक वापसी, जो (3 * rec (2) तक वापसी, जो (2 * rec (1) तक वापसी, जो (1) तक वापसी) ) ) ) क्या पक्षियों को समाधान मिल गया? अच्छा, यह वह है आपके लिए पुनरावृत्ति का सबसे सरल रूप में। मुझे उम्मीद है कि आप सहमत होंगे कि एक से दूसरे फ़ंक्शन कॉल तक नियंत्रण देना कॠपया कठिन होता है। संभावना है कि निम्न चित्र अधिक स्पष्टता से बातें कर सकता है। 7.7 एकाधिक पैरामीटर वास्तव में आप एक फ़ंक्शन में एक से अधिक आर्ग्यूमेंट का उपयोग कर सकते हैं। निम्न उदाहरण आपको दिखाएगा कि आप इसे कैसे कर सकते हैं। #इनक्लूड int min (int a, int b); मुख्य () int min (int a, int b) जैसा आप देख सकते हैं कि आप आर्ग्यूमेंट्स सूची में अपनी चरों को आसानी से जोड़ सकते हैं। 7.8 कॉल बाय वैल्यू 21/32 होता है.
[Audio] C प्रोग्रामिंग भाषा के फंक्शन कॉल, कॉल बाइ वैल्यू मेथड का प्रयोग करते हैं। इस विषय को बेहतर समझने के लिए एक उदाहरण देखते हैं। #include void test(int a); main() void test(int a) मुख्य() फ़ंक्शन में, हमने एक चर m को घोषित किया है। हमने m को मान 2 से असाइन किया है। हम देखना चाहते हैं कि क्या फ़ंक्शन कॉल m की मूल्य को बदल सकता है क्योंकि हमने फ़ंक्शन test() के अंदर आने वाले पैरामीटर की मूल्य को संशोधित किया है। कार्यक्रम का आउटपुट नतीजा है: म 2 है म 2 है इसलिए आप देखते हैं कि फ़ंक्शन कॉल ने आर्ग्यूमेंट की मूल्य को बदला नहीं है। इसका कारण यह है कि फ़ंक्शन कॉलिंग मेथड केवल मुख्य चर m की मूल्य को फ़ंक्शन को भेजता है और यह चर स्वयं नहीं भेजता है। वास्तव में, यह चर की मूल्य को स्टैक नामक स्थान में रखता है और फ़ंक्शन इस मूल्य को मुख्य चर स्वयं के पहुंच के बिना प्राप्त करता है। इसीलिए हम इस कॉलिंग मेथड को कॉल बाइ वैल्यू कहते हैं। 7.9 कॉल बाइ रेफरेंस एक और चर भेजने का एक मॉड दोस्त है, जिसे कॉल बाइ रेफरेंस कहा जाता है। यह दूसरा मॉड फ़ंक्शन को आर्ग्यूमेंट चरों के मूल्य को संशोधित करने की सुविधा प्रदान करता है। हम पहले एक उदाहरण देखेंगे और फिर हम इसे वर्णन करेंगे। 22/32.
[Audio] #शामिल<स्टडियो.एच> यहाँ तक कि फ़ंक्शन में हार्डवेयर प्रयोग किए गए एक चर के मान को संशोधित करने के लिए, फ़ंक्शन को चर को संशोधित करने के लिए मालिका पता जानने की आवश्यकता होती है (जहाँ चर की मान संग्रहीत है) । सी प्रोग्रामिंग भाषा में और ऑपरेटर चर को संग्रहीत की गई स्थान पर देता है। उदाहरण के लिए, यदि m एक int प्रकार का चर है तो &m हमें हमारे चर की शुरुआती स्थान का मालिका पता देगा। हम इसे 'प्वाइंटर' नाम देते हैं। ptr=&m; इस आदेश में ptr चर में चर की मालिका पता होगी। यह विधि सी प्रोग्रामिंग में कुछ मानक फ़ंक्शनों में प्रयोग किया जाता है। उदाहरण के लिए, scanf फ़ंक्शन उस विधि का प्रयोग करता है जिससे स्क्रीन में से मान प्राप्त किए जा सकें और उन्हें एक चर में रखा जा सके। वास्तव में इसे फ़ंक्शन में प्रयोग किए गए चर के मालिका पते में प्राप्त मान को रखता है। अब हम समझ गए हैं कि हम scanf चरों के नामों के पहले & चिह्न से क्यों जोड़ते हैं। scanf(%d,&a); अब जब हम चर की मालिका पता है, हमें उसे एक ऑपरेटर की आवश्यकता होती है जो हमें उस पते में स्थित मान को सेट करने या उस मालिका पते में संग्रहीत मान तक पहुंचने की सुविधा प्रदान करता है। जैसा कि हमने बताया, हम ओपरेटर का प्रयोग करके चर a की मालिका पता लगा सकते हैं। ptr=&a; अब ह.
[Audio] चलो हम अपना उदाहरण फिर से देखें। हमने फ़ंक्शन को पॉइंटर (मेमोरी एड्रेस) पास किया है। अब फ़ंक्शन को चेतन हो गया है कि कैसे वेरिएबल में संग्रहीत मान को संशोधित किया जाए। अगर आप प्रोग्राम चलाते हैं, तो आपको ये परिणाम मिलेंगे: M दो है मैमोरी ऐड्रेस 2293620 के भीतर संशोधन करते हुए, M पाँच होता है। इस बार आप देख सकते हैं कि हमने बुलाए गए फ़ंक्शन के भीतर आर्ग्यूमेंट वेरिएबल के मान को संशोधित किया है (हमारे मुख्य वेरिएबल के मेमोरी लोकेशन में मौजूद मान को संशोधित करके)। 8. पॉइंटर 8.1 पॉइंटर क्या है? पॉइंटर एक ऐसी वेरिएबल है जो एक वेरिएबल के मेमोरी एड्रेस को संग्रह करती है। प्रमुख बात यह है कि जब आप एक वेरिएबल के मेमोरी एड्रेस के बारे में बात कर सकते हैं, तो आप उस एड्रेस पर जा सकते हैं और उसमें संग्रहित डेटा को प्राप्त कर सकते हैं। 8.2 सी पॉइंटर का धारा-संदर्भ पॉइंटर को थोड़ा नया धारा-संदर्भ की आवश्यकता है क्योंकि एक बार जब आप किसी वेरिएबल के पास पॉइंटर हो जाते हैं, तो आपको उस पॉइंटर को संरक्षित मेमोरी एकाग्र का अनुरोध करने के लिए और उस मेमोरी एकाग्र में संग्रहित मान को प्राप्त करने के लिए क्षमता चाहिए। इसके अलावा, क्योंकि पॉइंटर कुछ खास होते हैं.