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

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

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

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

घोषणा (Declaration)

char string_name[size];

उदाहरण: char str[50]; // 50 कैरेक्टर तक की स्ट्रिंग (49 + नल टर्मिनेटर)

प्रारंभिकरण (Initialization)

विधि 1: एकल कैरेक्टर स्थिरांक का उपयोग करके

char str[20] = {'H', 'e', 'l', 'l', 'o', '\0'};

मेमोरी लेआउट:

इंडेक्स:  0  1  2  3  4  5  6...
मान:    H  e  l  l  o  \0  ?

विधि 2: स्ट्रिंग स्थिरांक का उपयोग करके (सबसे आम)

char str[20] = "Hello";

कंपाइलर स्वचालित रूप से '\0' जोड़ देता है।

इंडेक्स:  0  1  2  3  4  5  6...
मान:    H  e  l  l  o  \0  ?

विधि 3: आकार निर्दिष्ट किए बिना (कंपाइलर गणना करता है)

char str[] = "Hello";  // आकार स्वचालित रूप से 6 हो जाता है

विधि 4: पॉइंटर का उपयोग करके (स्ट्रिंग लिटरल - केवल पढ़ने योग्य)

char *str = "Hello";  // रीड-ओनली मेमोरी में संग्रहीत

नल कैरेक्टर '\0' के बारे में

  • '\0' को नल कैरेक्टर कहा जाता है
  • यह स्ट्रिंग के अंत को चिह्नित करता है
  • स्ट्रिंग लिटरल ("...") के लिए कंपाइलर स्वचालित रूप से रखता है
  • एकल कैरेक्टर इनिशियलाइज़र के लिए उपयोगकर्ता को मैन्युअल रूप से रखना पड़ता है
  • strlen(), printf("%s"), strcpy() आदि इसी पर निर्भर करते हैं

एक्सेस करना (Accessing)

कंट्रोल स्ट्रिंग "%s" का उपयोग स्ट्रिंग एक्सेस करने के लिए किया जाता है, जब तक '\0' न मिल जाए।

उदाहरण प्रोग्राम

#include <stdio.h>

int main() {
    char str[10] = "Hello";
    
    printf("दिया गया स्ट्रिंग है: %s\n", str);
    
    // अलग-अलग कैरेक्टर एक्सेस
    printf("कैरेक्टर दर कैरेक्टर: ");
    for (int i = 0; str[i] != '\0'; i++) {
        printf("%c ", str[i]);
    }
    printf("\n");
    
    // लंबाई
    printf("लंबाई: %lu\n", strlen(str));
    
    return 0;
}

आउटपुट

दिया गया स्ट्रिंग है: Hello
कैरेक्टर दर कैरेक्टर: H e l l o
लंबाई: 5

सामान्य स्ट्रिंग ऑपरेशन (string.h)

फ़ंक्शनउद्देश्यउदाहरण
strlen(s)लंबाईstrlen("Hello") = 5
strcpy(dest, src)कॉपीstrcpy(d, s)
strncpy(dest, src, n)n कैरेक्टर कॉपीstrncpy(d, s, 3)
strcat(dest, src)जोड़नाstrcat(d, s)
strcmp(s1, s2)तुलनाstrcmp("a", "b") < 0
strchr(s, c)कैरेक्टर खोजेंstrchr("Hello", 'e')
strstr(s1, s2)सबस्ट्रिंग खोजेंstrstr("Hello", "ll")

सामान्य गलतियां

  • str1 == str2 से तुलना करना (पते की तुलना होती है, सामग्री की नहीं) → strcmp उपयोग करें
  • बफर आकार से बड़ा स्ट्रिंग कॉपी करना → strncpy या snprintf उपयोग करें
  • '\0' भूल जाना मैन्युअल इनिशियलाइज़ेशन में
  • स्ट्रिंग लिटरल को संशोधित करने का प्रयास (अनिर्धारित व्यवहार)
  1. C भाषा में स्ट्रिंग के लिए इनपुट और आउटपुट फ़ंक्शन C भाषा में स्ट्रिंग के लिए इनपुट और आउटपुट फ़ंक्शन

    स्ट्रिंग क्या है? कैरेक्टर्स की एक सरणी (या संग्रह) को स्ट्रिंग कहा जाता है। C में स्ट्रिंग हमेशा नल कैरेक्टर \0 से समाप्त होती है। स्ट्रिंग इनपुट/आउटपुट फ़ंक्शन 1. scanf() और printf() - %s फॉर्मेट स्पेसिफायर char str[50]; scanf(%s, str); // इनपुट (स्पेस तक पढ़ता है) printf(%s, str); // आउटपु

  1. C भाषा में strncpy() फंक्शन क्या है? C भाषा में strncpy() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन char *strncpy(char *dest, const char *src, size_t n) स्रोत स्ट्रिंग (src) से गंतव्य स्ट्रिंग (dest) में n कैरेक्टर्स तक कॉपी करता है। यदि src की लंबाई n से कम है, तो dest का शेष भाग नल बाइट्स से भरा जाता है। घोषणा char stringname [size]; आरंभीकरण सिंगल कैरेक्टर: char string[10]

  1. C भाषा में strcmp() फंक्शन क्या है? C भाषा में strcmp() फंक्शन क्या है?

    C लाइब्रेरी फंक्शन int strcmp(const char *str1, const char *str2) str1 द्वारा इंगित स्ट्रिंग की तुलना str2 द्वारा इंगित स्ट्रिंग से करता है। कैरेक्टर्स का ऐरे स्ट्रिंग कहलाता है। घोषणा ऐरे के लिए घोषणा निम्नलिखित है: char stringname[size]; उदाहरण: char string[50]; 50 कैरेक्टर्स लंबाई की स्ट्रिंग