C Language में String क्या है? Complete Guide in Hindi

String C Programming की दुनिया में Text यानी शब्दों (word) और वाक्यों (Sentence) को Manage करने का तरीका है। C Language में String एक बुनियादी (basic) और बहुत उपयोगी Concept है। 

अगर आप C Language सीख रहे हैं, तो strings आपकी रोजमर्रा की ज़रूरत बन जाएंगी! क्योंकि कोई भी program लिखते समय string ज्यादा use होता है। इसलिए इस post में हम सीखेंगे — C Language में String क्या है, उसका Declaration और Initialization कैसे किया जाता है, और String को Input व Display करने के तरीके। इसके अलावा, हम कुछ Predefined और खुद के बनाए हुए Functions भी समझेंगे, और अंत में C Language में String से जुड़े कुछ important Quizzes और FAQs भी जानेंगे।

अगर आप C Language में String अच्छे से समझना चाहते हैं, तो ये Post आपके लिए ही है। 

1. String क्या होता है?

हम जो भी Text देखते हैं—जैसे आपका नाम, कोई पता, या “Good Morning!”—यह सब कंप्यूटर के लिए एक String है।

  • एक String, Characters (अक्षरों) का एक Group (समूह) होता है।
  • C Language में string, हर string हमेशा एक ख़ास Character के साथ खत्म होती है, जिसे Null Character (या ‘\0’) कहते हैं। यह ‘\0’ ही कंप्यूटर को बताता है कि यहाँ string खत्म हो गई है।

Character Array से इसका संबंध

C Language में, string को Store करने के लिए हम एक Character Array (अक्षरों का ऐरे) बनाते हैं। एक String = एक Character Array जिसके आखिर में ‘\0’ लगा हो।

Example: एक simple string print करने का प्रोग्राम

  #include <stdio.h>

int main() {
    char wish[] = "Good Morning!"; // यह एक string है।
    printf("Message: %s\n", wish);   // %s का उपयोग String को print करने के लिए किया जाता है।
    return 0;
}

Output: Good Morning!

2️. String Declaration और Initialization

C Language में String बनाने का मतलब है मेमोरी में उसके लिए जगह आरक्षित (Reserve) करना।

String को कैसे Declare करते हैं

हमें  C Compiler को बताना पड़ता है कि हम एक char Type का Array बना रहे हैं और उसका नाम क्या होगा, साथ ही उसमें अधिकतम कितने अक्षर आ सकते हैं।

String Declaration Example:

char city[30]; // ‘city’ नाम की string, जिसमें 30 अक्षर तक आ सकते हैं।

Initialization के दो तरीके (Value देना)

हम string को शुरू में ही value दे सकते हैं:

Character array के रूप में: एक-एक अक्षर को कर्ली ब्रेसेज़ {} में लिखना और अंत में ‘\0’ लगाना ज़रूरी है।

Example:
char colors[] = {‘R’, ‘E’, ‘D’, ‘\0’}; // थोड़ा मुश्किल तरीका

Double quotes (” “) के साथ (सबसे आसान तरीका): जब हम String को Double quotes में Initialize करते हैं तो C compiler अपने आप ही अंत में ‘\0’ जोड़ देता है।
char name[] = “Anwar “; //इस Example में compiler अपने आप ‘\0’ जोड़ देता है।

Example:

char subject[15] = “C Programming”;

Example Programs

#include <stdio.h>

int main() {
    // 1. String को Array की तरह declaration और initialize करने का तरीका
    char data1[] = {'L', 'I', 'V', 'E', '\0'};
    printf("Data 1: %s\n", data1);

    // 2. Double quotes आसान तरीका
    char data2[] = "CODE";
    printf("Data 2: %s\n", data2); 

    return 0;
}

Output:

Data 1: LIVE

Data 2: CODE

c language में string explain

3️. String Input और Output 

String को user से  Input लेने और Screen पर दिखाने के मुख्य तरीके:

FunctionकामLimit/समस्या
printf()String को दिखाना (Output)कोई समस्या नहीं।
scanf()String को लेना (Input)यह सिर्फ पहले शब्द को लेता है, खाली जगह (Space) आने पर रुक जाता है।
fgets()String को लेना (Input)यह पूरी लाइन (Spaces सहित) लेता है और सुरक्षित (Safe) है। हमें बताना होता है कि अधिकतम कितने अक्षर लेने हैं।

gets() से क्यों बचें?

एक पुराना function gets() था जो पूरी लाइन लेता था, लेकिन यह असुरक्षित (Unsafe) था क्योंकि यह string के साइज़ की जाँच नहीं करता था, जिससे Buffer Overflow (जगह से ज़्यादा data भर जाना) की समस्या हो सकती थी। इसलिए अब हमें हमेशा fgets() का उपयोग करना चाहिए।

Example Program (scanf और fgets)

#include <stdio.h> 

int main() {
    char single_word[10];  // छोटे word (जैसे first name) को store करने के लिए
    char full_line[50];    // पूरी line (जैसे full name with spaces) के लिए

    // scanf() space पर input काट देता है, इसलिए ये सिर्फ first word लेगा
    printf("Enter First Name (don't Enter Space): ");
    scanf("%s", single_word); 
    printf("You have Entered: %s\n", single_word);

    // getchar() leftover '\n' (newline) को clear करने के लिए — वरना fgets() सही से input नहीं लेगा
    getchar(); 

    // fgets() पूरे sentence को ले सकता है, spaces सहित
    printf("Enter your full name (with spaces): ");
    fgets(full_line, 50, stdin); 
    
    // Output दिखाना
    printf("You have entered full name : %s", full_line); 

    return 0;
}

Output:

Enter First Name (don’t Enter Space): anwar

You have Entered: anwar

Enter your full name (with spaces): anwar husan

You have entered full name : anwar husan

4️. String Functions in C (strlen, strcpy, strcat, strcmp examples)

C Programming में string.h name की एक header file होती है जिसमे string पर काम करने के लिए बहोत सारे ready made function होते है। जिन्हे हम इस्तेमला करके अपने काम को और आसान बना सकते है। निचे कुछ function और उनके काम बताये गए हैं।

 Header File: इन functions का उपयोग करने के लिए हमें हमेशा सबसे ऊपर <string.h> लिखना होता है।

 आम तौर पर इस्तेमाल होने वाले Functions:

Functionकाम (Operation)जैसे…
strlen(s)String की लंबाई (Length) बताता है।strlen(“Code”) returns 4
strcpy(dest, src)एक string (src) को दूसरी में कॉपी (dest) करता है।strcpy(a, “Hi”) में a अब “Hi” बन जाएगा।
strcat(dest, src)दो strings को जोड़ता (concatenate) है।strcat(“Hello”, “World”) बन जाएगा “HelloWorld”।
strcmp(s1, s2)दो strings की तुलना (compare) करता है।अगर समान हैं तो 0 देता है।
strrev(s)String को उल्टा (reverse) कर देता है।strrev(“ABCD”) बन जाएगा “DCBA”।

Example Program (सभी functions)

#include <stdio.h>
#include <string.h> // String related functions जैसे strlen(), strcpy(), strcat(), strcmp() के लिए
int main() {
char string1[20] = "Learning";
char string2[] = " C";
char string3[20];
// 1️ strlen() - किसी string की लंबाई बताता है (null character '\0' को छोड़कर)
printf("Length of string1: %zu\n", strlen(string1)); // Output: 8
// 2️ strcpy() - एक string को दूसरी में copy करने के लिए
strcpy(string3, string1);
printf("Copied string3: %s\n", string3);
// 3️ strcat() - दो strings को जोड़ने के लिए (concatenate)
strcat(string1, string2); // अब string1 "Learning C" बन जाएगा
printf("Joined string1: %s\n", string1);
// 4️ strcmp() - दो strings की तुलना करने के लिए (compare करता है character by character)
// Example: "Hello" vs "Jello"
// अगर पहला string lexicographically छोटा है → result < 0
// अगर दोनों same हैं → result = 0
// अगर पहला बड़ा है → result > 0
printf("Compare (\"Hello\" vs \"Jello\"): %d\n", strcmp("Hello", "Jello"));
return 0;
} 

Output:

Length of string1: 8

Copied string3: Learning

Joined string1: Learning C

Compare (“Hello” vs “Jello”): -1

5️. C Language में string को Character by Character Access करना

चूँकि C Language में string एक character array है, इस लिए हम Index (जगह की संख्या) का उपयोग करके किसी भी अक्षर तक पहुँच सकते हैं या उसे बदल सकते हैं।

  • Index हमेशा 0 से शुरू होता है (पहला अक्षर)।
  • Index 1 दूसरा अक्षर है, और इसी तरह string के अंत तक।

Example Program (string में character को बदलना)

#include <stdio.h>
int main() {
char data[] = "FAIL";
// Original string दिखाना
printf("Original string: %s\n", data);
// Index 0 पर character बदल रहे हैं — 'F' की जगह 'M' डाल रहे हैं
data[0] = 'M';
// Index 3 पर character बदलना (यहाँ पहले से 'L' है, तो output में कोई फर्क नहीं पड़ेगा)
data[3] = 'L';
// अब final string print करें
printf("Modified string: %s\n", data);
return 0;
} 

Output:

Original string: FAIL

Modified string: MAIL

6️. C Language में String Traversing

C Language में string Traversing का मतलब है Loop का उपयोग करके string के पहले अक्षर से आखिरी अक्षर तक जाना।

Null character (‘\0’) का महत्व

Traversing करते समय, Null character (‘\0’) की जाँच बार बार किया जाता है। जैसे ही loop ‘\0’ null index पर पहुंचता है, वैसे ही program को मालूम पड़ जाता है, कि string खतम हो गयी है। और loop terminate हो जाता है।

Example Program (खुद से String का Length लंबाई निकालना)

#include <stdio.h>
int main() {
char myStr[] = "Loop Test";
int length = 0;
int i = 0; // index variable
// जब तक character '\0' (null terminator) नहीं मिलता, loop चलता रहेगा
while (myStr[i] != '\0') {
length++; // हर बार एक character मिलने पर count बढ़ाते हैं
i++; // अगले index पर move करते हैं
}
printf("String: %s\n", myStr);
printf("Calculated Length: %d\n", length); // Output: 9
return 0;
} 

Output:

String: Loop Test

Calculated Length: 9

7️. User-defined String Operations (अपने खुद के String Functions)

एक Advance तरीका है कि हम <string.h> library का उपयोग किए बिना, खुद की लॉजिक से string functions बनाएँ। यह दिखाता है कि आपको string concept अच्छे से समझ में आ गया है। आप भी कमेंट में बताएं आपने कौनसा function बनाया इस post को पढ़ने के बाद। 

Example Programs (2 custom-made functions)

#include <stdio.h>  

// 1️ Custom function — string को manually copy करने के लिए (strcpy जैसा)
void cpystring(char *source, char *target) {
    int i = 0;

    // जब तक source खत्म नहीं होता ('\0' नहीं मिलता)
    while (source[i] != '\0') {
        target[i] = source[i];  // हर character copy करो
        i++;
    }

    target[i] = '\0';  // अंत में null character लगाना जरूरी है
    printf("\nString copied successfully!");
}

// 2️ Custom function — दो strings को manually जोड़ने के लिए (strcat जैसा)
void my_strcat(char *dest, char *src) {
    int i = 0, j = 0;

    // पहले destination string के end तक जाओ
    while (dest[i] != '\0') {
        i++;
    }
    dest[i++] = ' '; // दोनों String के बीच में space के लिए 
    // अब source string को destination के end में जोड़ो
    while (src[j] != '\0') {
        dest[i] = src[j];
        i++;
        j++;
    }

    dest[i] = '\0';  // नई string को null character से खत्म करो
}

int main() {
    char s1[50] = "First";   // पहली string
    char s2[] = "Second";    // दूसरी string
    char s3[50];             // copy store करने के लिए string

    // Custom copy function का use
    cpystring(s1, s3);
    printf("\nSource String : %s", s1);
    printf("\nCopied String : %s", s3);

    // Custom strcat function का use
    my_strcat(s1, s2);
    printf("\n\nAfter Concatenation : %s", s1);  // Output: FirstSecond
    
    return 0;
}

Output:

String copied successfully!

Source String : First

Copied String : First

After Concatenation : First Second

8️. Conclusion (निष्कर्ष)

इस article में हमने सीखा कि C language में string का basic क्या होता है — जैसे string को declare और initialize कैसे करते हैं, उसे input लेना और display करना, और कुछ predefined string functions के programs भी देखे।

साथ ही, हमने अपने खुद के string functions भी बनाए — जैसे cpystring() जो strcpy() की तरह काम करता है, और my_strcat() जो strcat() की तरह दो strings को जोड़ता है।

ऐसे functions को manually बनाकर हम string handling के core logic को और अच्छे से समझ सकते हैं।

अगर आप C language सीख रहे हैं, तो ऐसे custom programs ज़रूर practice करें — इससे आपको हर function के पीछे का actual working mechanism समझ में आएगा और आपका logic-building strong होगा। और साथ ही साथ निचे कुछ Quizzes और FAQS दिए गए हैं, Quizzes को पहले खुद से Solve करने की कोशिस करें। उसके बाद Answer देखें !

C Language में String के Important Quizzes

C Language String Quiz

Q1. नीचे में से कौन-सा string declaration valid है?

A. char name = "Anwar";
B. char name[] = "Anwar";
C. char name[5] = 'Anwar';
D. string name = "Anwar";
Answer: B
Reason: String को हमेशा array के रूप में declare किया जाता है और double quotes (” “) में लिखा जाता है।

Q2. char city[10] = “Delhi”; — इस string की length क्या होगी (null character सहित)?

A. 5
B. 6
C. 10
D. 4
Answer: B
Reason: “Delhi” में 5 characters हैं + 1 null character ‘\0’ = 6 bytes।

Q3. strlen(“Code”) का output क्या होगा?

A. 3
B. 4
C. 5
D. 6
Answer: B
Reason: strlen() null character को count नहीं करता, इसलिए output 4 होगा।

Q4. strcpy() function क्या करता है?

A. दो strings को जोड़ता है
B. एक string को दूसरी में copy करता है
C. strings की तुलना करता है
D. string को reverse करता है
Answer: B
Reason: strcpy(dest, src) source की पूरी string को destination में copy करता है।

Q5. strcmp(“A”, “B”) क्या return करेगा?

A. 0
B. Positive value
C. Negative value
D. Error
Answer: C
Reason: ‘A’ ASCII में ‘B’ से छोटा है, इसलिए strcmp() negative value return करेगा।

Q6. नीचे दिए गए loop का काम क्या है?

while(name[i] != '\0') {
i++;
}
Answer: यह loop string की length count करता है जब तक null character नहीं आ जाता।

Q7. my_strcat(“Good”, “Day”) का result क्या होगा?

A. Good
B. Day
C. GoodDay
D. Error
Answer: C
Reason: my_strcat() दोनों strings को जोड़कर एक नई string बनाता है — “GoodDay”।

 FAQS : String in c programming

Q1. C में string declare और initialize कैसे करते हैं?

Ans: C में string को char array के रूप में declare किया जाता है। जैसे:

char name[10] = "Anwar";

यहाँ name एक character array है जो end में ‘\0’ (null character) से terminate होता है। बिना initialize किए भी declare कर सकते हैं — char name[20]; — लेकिन तब value बाद में assign करनी होगी।

Q2. C Language में predefined string functions कौन-कौन से हैं?

Ans: कुछ commonly used predefined functions ये हैं:

  • strcpy() – एक string को दूसरी में copy करने के लिए
  • strcat() – दो strings को जोड़ने के लिए
  • strlen() – string की length जानने के लिए
  • strcmp() – दो strings को compare करने के लिए
  • strrev() – string को reverse करने के लिए
Q3. क्या हम अपने custom string functions बना सकते हैं?

Ans: हाँ, बिल्कुल। आप predefined functions जैसे strcpy() या strcat() की जगह अपने custom logic लिख सकते हैं। इससे आपको string handling का actual working mechanism अच्छे से समझ आता है। उदाहरण:

void cpystring(char *src, char *dest) {
int i = 0;
while (src[i] != '\0') {
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
Q4. string में null character (‘\0’) का क्या role होता है?

Ans: Null character ‘\0’ string के end को define करता है। बिना इसके compiler को पता नहीं चलेगा कि string कहाँ खत्म होती है, जिससे garbage values print हो सकती हैं।

Q5. C में string input लेने का सही तरीका क्या है?

Ans: आप scanf() या gets() (deprecated) का use कर सकते हैं। लेकिन space वाली string के लिए fgets() best option है। उदाहरण:

char name[30];
fgets(name, sizeof(name), stdin);

यह newline सहित input लेता है और buffer overflow से भी बचाता है।

यह post आपको कैसा लगा, comment में ज़रूर बताएं, और इसे share करके किसी और को C programming सीखने में मदद करें।

Thanks For Visit “AnwarCodes”

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top