Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> सी प्रोग्रामिंग

C भाषा में स्ट्रिंग के लिए इनपुट और आउटपुट फ़ंक्शन

स्ट्रिंग क्या है?

कैरेक्टर्स की एक सरणी (या संग्रह) को स्ट्रिंग कहा जाता है। C में स्ट्रिंग हमेशा नल कैरेक्टर '\0' से समाप्त होती है।

स्ट्रिंग इनपुट/आउटपुट फ़ंक्शन

1. scanf() और printf() - %s फॉर्मेट स्पेसिफायर

char str[50];
scanf("%s", str);    // इनपुट (स्पेस तक पढ़ता है)
printf("%s", str);   // आउटपुट

सीमा: स्पेस/व्हाइटस्पेस पर रुक जाता है। "Hello World" → केवल "Hello" पढ़ेगा।

2. gets() और puts() - पूर्ण पंक्ति

char str[50];
gets(str);    // इनपुट (स्पेस सहित पूर्ण पंक्ति) - असुरक्षित!
puts(str);    // आउटपुट + स्वचालित नई पंक्ति

चेतावनी: gets() असुरक्षित है (बफर ओवरफ्लो)। उपयोग न करें।

3. fgets() और fputs() - सुरक्षित विकल्प

char str[50];
fgets(str, sizeof(str), stdin);  // सुरक्षित इनपुट
fputs(str, stdout);              // आउटपुट

सबसे अच्छा अभ्यास: fgets() का उपयोग करें, फिर नई पंक्ति हटाएं।

उदाहरण 1: scanf/printf (स्पेस नहीं पढ़ता)

#include <stdio.h>

int main() {
    char name[30];
    
    printf("अपना नाम दर्ज करें: ");
    scanf("%s", name);  // केवल पहला शब्द पढ़ेगा
    
    printf("आपका नाम: %s\n", name);
    
    return 0;
}

आउटपुट

अपना नाम दर्ज करें: Lucky Lol
आपका नाम: Lucky

उदाहरण 2: fgets/puts (स्पेस सहित पूर्ण पंक्ति)

#include <stdio.h>
#include <string.h>

int main() {
    char name[30];
    
    printf("अपना नाम दर्ज करें: ");
    fgets(name, sizeof(name), stdin);
    
    // fgets नई पंक्ति शामिल करता है, उसे हटाएं
    name[strcspn(name, "\n")] = '\0';
    
    printf("आपका नाम: ");
    puts(name);
    
    return 0;
}

आउटपुट

अपना नाम दर्ज करें: Lucky Lol
आपका नाम: Lucky Lol

तुलना तालिका

फ़ंक्शनप्रकारस्पेस पढ़ता हैसुरक्षितनई पंक्ति
scanf("%s")इनपुटनहींहाँ (चौड़ाई के साथ)नहीं
gets()इनपुटहाँनहीं (बफर ओवरफ्लो)हटाता है
fgets()इनपुटहाँहाँरखता है
printf("%s")आउटपुट-हाँनहीं
puts()आउटपुट-हाँजोड़ता है
fputs()आउटपुट-हाँनहीं

महत्वपूर्ण नोट्स

  • & स्ट्रिंग के लिए उपयोग नहीं किया जाता क्योंकि सरणी नाम आधार पता देता है
  • scanf स्पेस को कैरेक्टर नहीं मानता
  • कंपाइलर स्वचालित रूप से अंत में '\0' रखता है (स्ट्रिंग लिटरल के लिए)
  • उपयोगकर्ता इनपुट के लिए fgets + strcspn सर्वश्रेष्ठ अभ्यास है

उन्नत: स्कैनसेट के साथ scanf

// स्पेस सहित पढ़ने के लिए स्कैनसेट
char str[100];
scanf("%[^\n]", str);  // नई पंक्ति तक सब कुछ पढ़ें
scanf("%*c");          // नई पंक्ति खाएं
  1. C भाषा में लूप कंट्रोल स्टेटमेंट्स क्या हैं? फ्लो चार्ट और प्रोग्राम के साथ समझाएं C भाषा में लूप कंट्रोल स्टेटमेंट्स क्या हैं? फ्लो चार्ट और प्रोग्राम के साथ समझाएं

    लूप कंट्रोल स्टेटमेंट्स स्टेटमेंट्स के सेट को दोहराने के लिए उपयोग किए जाते हैं। वे हैं: for लूप while लूप do-while लूप for लूप सिंटैक्स for(initialization; condition; increment/decrement) { // लूप बॉडी } फ्लो चार्ट (Condition पर वापस) आरंभीकरण - आमतौर पर एक असाइनमेंट स्टेटमेंट जो लूप क

  1. C भाषा में खोज तकनीकें (Searching Techniques) C भाषा में खोज तकनीकें (Searching Techniques)

    खोज (Searching) का परिचय खोज तकनीक का अर्थ है किसी सूची में किसी कुंजी तत्व (key element) को ढूंढना। यदि तत्व मिल जाता है तो खोज सफल (successful), अन्यथा असफल (unsuccessful) होती है। C में दो प्रमुख खोज तकनीकें रैखिक खोज (Linear Search) द्विआधारी खोज (Binary Search) 1. रैखिक खोज (Linear Search)

  1. साइफरपंक्स कौन हैं और वे किसकी वकालत कर रहे हैं? साइफरपंक्स कौन हैं और वे किसकी वकालत कर रहे हैं?

    क्रिप्टोकरेंसी के समाचार चक्र पर हावी होने के साथ, साइफरपंक समुदाय एक बार फिर सुर्खियों में आ गया है। ब्लॉकचेन तकनीक के बढ़ते उपयोग का अर्थ यह भी है कि दुनिया भर में साइफरपंक के रूप में पहचान बनाने वाले व्यक्तियों की संख्या तेजी से बढ़ रही है, जो सरकार और कानून प्रवर्तन संस्थानों के लिए चिंता का विष