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

C भाषा में sprintf() और sscanf() फ़ंक्शन का उपयोग

sscanf() फ़ंक्शन

यह फ़ंक्शन एक कैरेक्टर स्ट्रिंग से डेटा पढ़ता है।

सिंटैक्स

sscanf(string, format_specifier, &var1, &var2, ...);
  • string: वह कैरेक्टर स्ट्रिंग जिससे पढ़ना है
  • format_specifier: फॉर्मेटिंग जानकारी वाला स्ट्रिंग
  • var1, var2: इनपुट डेटा आइटम के लिए चर

उदाहरण

sscanf(str, "%d:%d", &hours, &minutes);  // "12:30" से घंटे और मिनट पढ़ें

sprintf() फ़ंक्शन

यह फ़ंक्शन डेटा को एक कैरेक्टर स्ट्रिंग में लिखता है (कंसोल पर प्रिंट करने के बजाय)।

सिंटैक्स

sprintf(string, format_specifier, var1, var2, ...);
  • string: वह कैरेक्टर सरणी जहां आउटपुट संग्रहीत होगा
  • format_specifier: फॉर्मेटिंग जानकारी
  • var1, var2: आउटपुट करने के लिए डेटा आइटम

उदाहरण

char buffer[100];
sprintf(buffer, "2 का घन %d है और वर्ग %d है", 2*2*2, 2*2);
// buffer में: "2 का घन 8 है और वर्ग 4 है"

उदाहरण 1: sscanf() - स्ट्रिंग पार्सिंग

#include <stdio.h>

int main() {
    char input[] = "Tutorials Point";
    char word1[20], word2[20];
    
    // स्ट्रिंग से दो शब्द निकालें
    sscanf(input, "%s %s", word1, word2);
    
    printf("पहला शब्द: %s\n", word1);
    printf("मूल स्ट्रिंग: %s\n", input);
    
    return 0;
}

आउटपुट

पहला शब्द: Tutorials
मूल स्ट्रिंग: Tutorials Point

उदाहरण 2: sprintf() - फॉर्मेटेड स्ट्रिंग बनाना

#include <stdio.h>

int main() {
    char result[100];
    int a = 20, b = 30, sum;
    
    sum = a + b;
    
    // फॉर्मेटेड स्ट्रिंग बनाएं
    sprintf(result, "दो संख्याएं %d और %d जोड़ने पर परिणाम %d होता है", a, b, sum);
    
    printf("%s\n", result);
    
    return 0;
}

आउटपुट

दो संख्याएं 20 और 30 जोड़ने पर परिणाम 50 होता है

व्यावहारिक उपयोग के मामले

1. sscanf: कॉन्फ़िगरेशन स्ट्रिंग पार्स करना

char config[] = "server=192.168.1.1 port=8080 timeout=30";
char server[20];
int port, timeout;

sscanf(config, "server=%s port=%d timeout=%d", server, &port, &timeout);
printf("सर्वर: %s, पोर्ट: %d, टाइमआउट: %d\n", server, port, timeout);

2. sprintf: डायनामिक SQL क्वेरी बनाना

char query[200];
int id = 101;
char name[] = "राहुल";
float salary = 50000.0;

sprintf(query, "INSERT INTO employees VALUES (%d, '%s', %.2f)", id, name, salary);
printf("क्वेरी: %s\n", query);

3. sprintf: फ़ाइल नाम जनरेट करना

char filename[50];
for (int i = 1; i <= 5; i++) {
    sprintf(filename, "log_%03d.txt", i);  // log_001.txt, log_002.txt...
    printf("%s\n", filename);
}

सावधानियां

  • बफर ओवरफ्लो: sprintf गंतव्य बफर आकार की जांच नहीं करता। सुरक्षित विकल्प: snprintf(buffer, size, format, ...)
  • sscanf रिटर्न मान देता है: सफलतापूर्वक पढ़े गए आइटम की संख्या, या EOF
  • दोनों फ़ंक्शन stdio.h में घोषित हैं

तुलना तालिका

फ़ंक्शनदिशाउपयोगसुरक्षित विकल्प
sprintfमेमोरी → स्ट्रिंगफॉर्मेटेड स्ट्रिंग बनानाsnprintf
sscanfस्ट्रिंग → मेमोरीस्ट्रिंग पार्स करना-
printfमेमोरी → कंसोलस्क्रीन पर प्रिंट-
scanfकंसोल → मेमोरीउपयोगकर्ता इनपुट-
  1. जावास्क्रिप्ट में कस्टम और बिल्ट-इन फंक्शन्स में क्या अंतर है? जावास्क्रिप्ट में कस्टम और बिल्ट-इन फंक्शन्स में क्या अंतर है?

    जावास्क्रिप्ट में कस्टम फंक्शन्स यूजर-डिफाइन्ड फंक्शन्स हैं। जावास्क्रिप्ट हमें अपने खुद के फंक्शन्स लिखने की अनुमति देता है। निम्नलिखित सिंटैक्स है:सिंटैक्स<script>    <!--       function functionname(parameter-list)       {       &nbs

  1. C भाषा में putw() और getw() फंक्शन्स C भाषा में putw() और getw() फंक्शन्स

    फाइल रिकॉर्ड्स का संग्रह है या हार्ड डिस्क पर एक स्थान है जहां डेटा स्थायी रूप से संग्रहीत होता है। फाइलों पर ऑपरेशन्स C प्रोग्रामिंग भाषा में फाइलों पर ऑपरेशन्स निम्नलिखित हैं: फाइल का नामकरण फाइल खोलना फाइल से पढ़ना फाइल में लिखना फाइल बंद करना सिंटैक्स फाइल खोलने का सिंटैक्स निम्नलिखित है: F

  1. C भाषा में स्ट्रिंग क्या है - घोषणा और प्रारंभिकरण C भाषा में स्ट्रिंग क्या है - घोषणा और प्रारंभिकरण

    स्ट्रिंग क्या है? कैरेक्टर्स की एक सरणी (या संग्रह) को स्ट्रिंग कहा जाता है। C में स्ट्रिंग हमेशा नल कैरेक्टर \0 (ASCII 0) से समाप्त होती है। घोषणा (Declaration) char string_name[size]; उदाहरण: char str[50]; // 50 कैरेक्टर तक की स्ट्रिंग (49 + नल टर्मिनेटर) प्रारंभिकरण (Initialization) विधि 1: ए